我有一个可以通过符合给定接口的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清单中设置的主要类是什么?你的课程路径是什么?如何指定要加载的类?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top