什么是动态加载 java 类文件的好方法,以便编译成 jar 的程序可以读取目录中的所有类文件并使用它们,以及如何编写文件以便它们具有相关的必要包名到罐子里?
原文由 MirroredFate 发布,翻译遵循 CC BY-SA 4.0 许可协议
什么是动态加载 java 类文件的好方法,以便编译成 jar 的程序可以读取目录中的所有类文件并使用它们,以及如何编写文件以便它们具有相关的必要包名到罐子里?
原文由 MirroredFate 发布,翻译遵循 CC BY-SA 4.0 许可协议
Class myclass = ClassLoader.getSystemClassLoader().loadClass("package.MyClass");
或者
Class myclass = Class.forName("package.MyClass");
或者从不在类路径中的不同文件夹加载类:
File f = new File("C:/dir");
URL[] cp = {f.toURI().toURL()};
URLClassLoader urlcl = new URLClassLoader(cp);
Class myclass = urlcl.loadClass("package.MyClass");
如果加载的类不在您的类路径中并且您无法导入和转换它,则可以使用反射来进一步使用加载的类。例如,如果你想调用名为“main”的 静态 方法:
Method m = myclass.getMethod("main", String[].class);
String[] args = new String[0];
m.invoke(null, args); // invoke the method
原文由 d2k2 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我相信这是一个
ClassLoader
你在找。我建议您首先查看下面的示例,该示例加载了不在类路径中的类文件。