Java 在运行时加载Jar并访问所有类
我需要在运行时从配置文件中提供的路径添加一个jar。让我们称之为Java 在运行时加载Jar并访问所有类,java,Java,我需要在运行时从配置文件中提供的路径添加一个jar。让我们称之为run-time.jar 我原来的jar是original.jar。我直接在我的original.jar中从run-time.jar导入类。在编译时,我有一个run-time.jar的示例版本来帮助我解决编译问题。我正在构建一个没有依赖项的瘦罐子 我计划使用URLClassLoader在运行时加载类。我在original.jar中的示例代码是 // Importing class from run-time.jar import r
run-time.jar
我原来的jar是original.jar
。我直接在我的original.jar
中从run-time.jar
导入类。在编译时,我有一个run-time.jar的示例版本来帮助我解决编译问题。我正在构建一个没有依赖项的瘦罐子
我计划使用URLClassLoader
在运行时加载类。我在original.jar中的示例代码是
// Importing class from run-time.jar
import run.time.Test
class Original {
public static void main(String[] args) {
/*Code to load classes from jar file*/
Test newTest = new Test();
newTest.runTests();
}
}
这种方法有效吗?或者有没有更好的建议。感谢您的帮助。谢谢
参考:这种方法有时用于在运行时加载JDBC驱动程序,您可以从这个线程中得到一些启示:
我想看看这对你的罐子是否管用,试试看。但我认为你的类加载器黑客应该适用于Java版本<9
然而,从代码质量的角度来看,这并不是一个非常干净的解决方案,我相信您已经意识到了这一点。你考虑过研究OSGi吗 是:URLClassLoader
是一种方法。正确的方法是使用。您不应该直接读取.jar文件来加载其类。