从jar运行时出错 - 反射class.forname异常

时间:2014-05-07 05:33:08

标签: java netbeans reflection jar

我正在用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;我的意思是它们正是写入文件的内容)。

我指出了创建异常的确切行,这里是我获得的异常的快照: enter image description here

我强调(再次)从IDE执行我的项目时一切正常,问题是当我从dist文件夹中的jar运行它时。

有谁知道为什么我有这个问题以及如何解决它?


PS:我所有的课程都在&#34;源包中#34;夹

1 个答案:

答案 0 :(得分:1)

由于类路径不完整而发生NoClassDefFoundError。在运行jar文件之前,确保所有必需的jar都在classpath中。如果要创建可执行jar文件,则可以在清单文件中定义类路径:

  

Class-Path:servlet.jar infobus.jar

希望这有帮助。