2011-08-13 111 views
1

我嘗試使用命令行創建Jar文件。使用命令行創建Jar文件時出現問題

我的清單文件:

Manifest-Version: 1.0 
Created-By: 1.6.0 (Sun Microsystems Inc.) 
Main-Class:Home 

我的文件和該位置上的文件:

地點:D:\Application 文件:

images 
    add.png 
    home.png 
    minus.png 
Database.java 
Home.java 
UiDesign.java 
Database.class 
Home.class// This is my main class 
UiDesign.class 
Manifest.txt 
mysql-connector-java-5.1.15-bin.jar 

要創建jar文件,我想:

D:\Application>jar cmf Manifest.txt MyApp.jar *.class mysql-connector-java-5.1.15-bin.jar images 

但jar文件被創建。如果我點擊jar文件,錯誤消息顯示如下圖所示,

無法從 d加載主類清單屬性:\應用\ MyApp.jar

感謝所有....我的問題,通過添加清單文件,新的生產線解決了....謝謝大家......

但現在我還有一個問題.....

D:\JavaApplication-13-8-2011\Application>jar cfm MyApp.jar Manifest.txt *.class 
mysql-connector-java-5.1.15-bin.jar images 

D:\JavaApplication-13-8-2011\Application>java -jar MyApp.jar 
Connect to MySQl 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Unknown Source) 
     at Database.getDBConnection(Database.java:14) 
     at UiDesign.<init>(UiDesign.java:58) 
     at Home.main(Home.java:6) 
java.lang.NullPointerException 
     at Database.getBrand(Database.java:31) 
     at UiDesign.<init>(UiDesign.java:59) 
     at Home.main(Home.java:6) 
Exception in thread "main" java.lang.NullPointerException 
     at UiDesign.<init>(UiDesign.java:64) 
     at Home.main(Home.java:6) 

D:\JavaApplication-13-8-2011\Application> 

我認爲THI因爲類路徑沒有設置爲mysql連接器....我已經在我的應用程序中添加了這個jar文件.....如何設置類路徑併成功運行我的應用程序jar文件.....

請幫助我....

謝謝......我清除......這個問題也......正如Trisstan說的,我在Manifest文件中添加了classpath ...現在我的應用程序Jar文件運行成功.. ...

謝謝大家的快速響應......

回答

0

確保有清單檔案中的回車和我也猜你的jar文件的名稱爲您的選擇說CFM應先清單文件。

Failed to Load Main-Class manifest attribute from D:\Application\MyApp.jar 

從錯誤它看起來像它認爲該jar文件是您的清單文件。這應該是問題。

更新參數或將選項參數更改爲mcf我猜..

1

這可能是關於類路徑的錯誤,因爲你的罐子取決於使用mysql-connector-java的5.1.15-bin.jar

+0

謝謝Tristan..I在我的Manifest文件中添加了類路徑...現在我的應用程序Jar文件工作成功...感謝您的快速響應.... – ram

+1

好的,您應該將此標記爲已解決 – Tristan

0

對於你的第二個問題:

你的罐子可能包含mysql jar的副本。這不起作用,因爲罐子應該包含類。解決這個問題的最簡單方法是在清單中的indicate,您的代碼依賴於mysql jar。基本上加入以下內容:

Class-Path: mysql-connector-java-5.1.15-bin.jar 

在你的jar創建命令中,不要包含mysql jar。最後,確保你的jar和mysql一起發佈(在同一個目錄中)。

如果你真的想要一個jar文件,請解壓縮mysql jar文件,並將它的內容包含在你要發佈的jar文件中。

相關問題