程序从jar执行时的动态加载问题

时间:2009-10-21 13:14:35

标签: java classloader dynamic-loading

我有一个可以通过符合给定接口的java类扩展的应用程序。 如果我从命令行类运行程序,我可以使用:

实例化附加类
Class.forName("myAddon").newInstance();

但是,如果我jar应用程序(正确设置主类),我会得到一个类未找到异常。任何人都可以了解这里发生的事情吗?

TIA, 亚当

2 个答案:

答案 0 :(得分:1)

我已经设法使用URLClassLoader使其工作,将搜索路径指定为当前目录,如下所示:

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

感谢您的帮助,

亚当

答案 1 :(得分:0)

您正在寻找的课程不在课程路径上。如果它在一个目录中

即。 MyClass.class MyJar.jar

你需要这样做:

java -classpath . -jar MyJar.jar

但实际上我们需要更多信息来回答这个问题。 jar清单中设置的主要类是什么?你的课程路径是什么?如何指定要加载的类?