2014-09-25 85 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