我正在用java做一个项目,所有事情都很好,直到我试图从jar文件运行我的程序。我设法找到了问题,它是这样的:
我尝试实现基于插件的方法。我有一个conf文件,我从那里读取我想要使用的类的路径,然后我用class.forname动态加载它们。如果有帮助,这是我的代码:
for (i=0; i<classPathsArray.size(); i++) {
Class c = Class.forName(classPathsArray.get(i)); //error line
Object class2Add = (LibraryWrapper)c.newInstance();
wrappers.add((LibraryWrapper)class2Add);
}
库路径类似于:&#34; path.path.path.path.className&#34;他们似乎还可以从IDE或jar中运行我的项目(当我说&#34;似乎没问题&#34;我的意思是它们正是写入文件的内容)。
我指出了创建异常的确切行,这里是我获得的异常的快照:
我强调(再次)从IDE执行我的项目时一切正常,问题是当我从dist文件夹中的jar运行它时。
有谁知道为什么我有这个问题以及如何解决它?
PS:我所有的课程都在&#34;源包中#34;夹
答案 0 :(得分:1)
由于类路径不完整而发生NoClassDefFoundError。在运行jar文件之前,确保所有必需的jar都在classpath中。如果要创建可执行jar文件,则可以在清单文件中定义类路径:
Class-Path:servlet.jar infobus.jar
希望这有帮助。