2014-09-25 59 views
2

我有一个项目有一些依赖的罐子。我已经添加了相关的罐子项目,然后将它们添加到构建路径。 当我从eclipse运行它时,它运行良好。Runnable jar没有找到库

现在我想把它变成一个可运行的jar。 一旦我将其导出为Runnable jar以及选项“将所需库包装到生成的Jar中”。

当我运行jar时,它会抛出我Cannot find symbols错误。这些符号存在于相关的罐子里,我不知道它为什么会发生。

任何人都可以帮我吗?

回答

3

你应该使用选项提取所需的库到生成JAR而不是包所需的库到生成的JAR时要导出的项目到运行的JAR文件

区别在于,打包所需的库需要将JAR文件放入JAR文件中。所以JAR文件中有其他的JAR文件。为了这个工作,你的主程序必须有关于如何读取主JAR文件中的JAR文件的知识。

为了澄清,结果文件将是这样的:

project.jar/ 
    com/yourproject/Main.class 
    dependencyA.jar 
    dependencyB.jar 

对于其他选项,提取所需的库到生成JAR,会发生什么是那些依赖会解压,然后装到JAR文件中。这次不是作为JAR文件,而是作为类和资源文件。此方法将允许Java从主JAR文件中查找相关的类文件。

结果现在这个样子

project.jar/ 
    com/yourproject/Main.class 
    com/dependencyA/SomeClass.class 
    com/dependencyA/SomeOtherClass.class 
    ... 

这种格式是可读的Java进程,寻找类和资源文件的JAR不嵌套的JAR文件。

+0

这样做还是一样的问题。 – Aneesh 2014-09-25 11:52:49

+0

运行JAR文件时,可以粘贴完整的错误吗? – toomasr 2014-09-25 11:54:01