我有一个可通过符合给定接口的 java 类扩展的应用程序。如果我从命令行类运行程序,我可以使用以下方法实例化附加类:
Class.forName("myAddon").newInstance();
但是,如果我 jar 应用程序(正确设置主类),我会得到一个类未找到异常。任何人都可以阐明这里发生了什么吗?
TIA,亚当
我有一个可通过符合给定接口的 java 类扩展的应用程序。如果我从命令行类运行程序,我可以使用以下方法实例化附加类:
Class.forName("myAddon").newInstance();
但是,如果我 jar 应用程序(正确设置主类),我会得到一个类未找到异常。任何人都可以阐明这里发生了什么吗?
TIA,亚当
我已经设法使用 URLClassLoader 来完成这项工作,将搜索路径指定为当前目录,如下所示:
URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});
感谢你的帮助,
亚当
您要查找的类不在类路径中。如果它在目录中
即 MyClass.class MyJar.jar
你需要做:
java -classpath . -jar MyJar.jar
但实际上我们需要更多信息来回答这个问题。jar 清单中设置的主要类是什么?你的类路径是什么?您如何指定要加载的类?