2013-07-10 152 views
2

我需要幫助,包括導入的jar文件到Linux中的Java程序中。下面是程序:Java:將包含的Jar文件添加到Linux中創建的Jar文件中

import java.sql.*; 
public class CreateCoffees 
{ 
    public static void main(String args[]) 
    { 
     try { 
      Class.forName("com.ibm.db2.jcc.DB2Driver"); 
     } 
     catch(java.lang.ClassNotFoundException e) { 
      System.err.print("ClassNotFoundException: "); 
      System.err.println(e.getMessage()); 
      System.exit(1); 
     } 
    } 
} 

爲了執行Class.forName("com.ibm.db2.jcc.DB2Driver");我需要兩個.jar文件加入到classpath中:

db2jcc_license_cu.jar 
db2jcc4.jar 

我把這些jar文件在同一目錄作爲我CreateCoffees.java文件,然後編譯並像這樣運行:

javac CreateCoffees.java 
java CreateCoffees 

但我得到這個錯誤

ClassNotFoundException: com.ibm.db2.jcc.DB2Driver 

然後我嘗試了「-classpath」選項

javac -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees.java 
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees 

,但得到這個

Exception in thread "main" java.lang.NoClassDefFoundError: CreateCoffees 
Caused by: java.lang.ClassNotFoundException: CreateCoffees 

如何我包括那些jar文件到我運行的JAR,所以我可以用java -jar myjar.jar運行?

回答

1

試試這個

java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees 

當您使用-classpath它失去的類路徑中的當前目錄,因此需要在classpath中.以及明確

+0

偉大的,那有效。謝謝 – user1518963

0

如何,包括項目的罐子到您可運行的jar:

我會逐步指導您使用Eclipse版本:3.7.2在Ubuntu 12.10上運行。我還會告訴你如何製作build.xml,這樣你就可以從命令行執行ant jar並創建你的JAR並將其他導入的JAR解壓到它。

基本上你要求Eclipse構建build.xml,將你的庫導入到你的jar中。

  1. 火了Eclipse和作出新的Java項目,創建一個新包「mypackage中」,添加您的主類:Runner將這個代碼在那裏。

    enter image description here

  2. 現在包括mysql-connector-java-5.1.28-bin.jarfrom Oracle這使我們能夠編寫Java連接到MySQL數據庫。通過右鍵單擊項目 - >屬性 - > java構建路徑 - >添加外部Jar - >選擇mysql-connector-java-5.1.28-bin.jar。

  3. 在eclipse中運行程序,它應該運行,並告訴你用戶名/密碼是無效的,這意味着Eclipse已經正確配置了jar。

  4. 在Eclipse中轉到FileExportJavaRunnable Jar File。你會看到這個對話框:

    enter image description here

    確保建立了「另存爲Ant腳本」複選框。這就是爲什麼你可以使用命令行稍後執行ant jar

  5. 然後到終端,並期待在ant腳本:

    enter image description here

所以你看,我跑的罐子,並沒有錯誤,因爲它發現了包括mysql-connector-java-5.1.28-bin.jar嵌入在Hello.jar內。

往裏Hello.jar:vi Hello.jar,你會看到許多人提到com/mysql/jdbc/stuff.class

要在命令行做ant jar自動完成這一切:重命名buildant.xmlbuild.xml,並更改目標的名字從create_run_jarjar

然後,從MyProject內輸入ant jar和繁榮。你的MyProject裏有你的jar。你可以使用java -jar Hello.jar來調用它,它可以工作。

相關問題