推薦做法:
裝一個fatjar外掛程式,非常方便,而且打出來的jar包可以運行,包括引用外部的jar包以及其他檔案,都能夠很方便的引用到jar包裡。
裝好外掛程式後,點擊右鍵,export,應該在other中,選擇fat jar exporter,然後自己慢慢看好一些選項就行了。
第二種方法:(本人試了很多次,打成的jar包可以運行,但是當jar變換到別的目錄以後,有會提示缺少相關jar包,不推薦做法)
java項目打jar包分為2種情況:
一、java項目沒有匯入第三方jar包
這時候打包就比較簡單:
1. 首先在Eclipse中開啟項目, 右鍵點擊項目,選擇“Export”;
2. 選擇Java/JAR file,Next;
3. Select the resources to export中可以選擇你想要包含的專案檔夾,一些不必要的檔案夾就無需放進去了,免得增大空間;
這裡有幾個選項:
* Export generated class files and resources 表示只匯出產生的.class檔案和其他資源檔
* Export all output folders for checked projects 表示匯出選中項目的所有檔案夾
* Export java source file and resouces 表示匯出的jar包中將包含你的原始碼*.java,如果你不想泄漏原始碼,那麼就不要選這項了
* Export refactorings for checked projects 把一些重構的資訊檔也包含進去
在Select the export destination中選擇匯出的jar的路徑,Next
4. 下一頁可以選擇是否匯出那些含有警告warning或者錯誤errors的*.class檔案。一般不用理他,Next
5. 下一個頁面裡可以對項目做一些配置。(如果項目沒有引入第三方jar包,這項我們採用系統預設的選項就OK,Main class一定要設定成為你項目的那個主方法入口類)
* Generate the manifest file是系統幫我們自動產生MANIFEST.MF檔案,如果你的項目沒有引用其他class-path,那可以選擇這一項。
* Use existing mainfest from workspace。這是可以選擇我們自訂的.MF檔案,格式如上所寫。
* Seal content。要封裝整個jar或者指定的包packet
* Main class。這裡可以選擇你的程式入口,將來打包出來的jar就是你這個入口類的執行結果。
最後Finish,搞定。 ......
二、java項目有匯入第三方Jar包(例如項目中有匯入sqlserver2005.jar包)
這時候打包就相對複雜一點:
前面的4步和上面的情況是一樣,只是第5步需要選擇Use existing mainfest from workspace選項,並選擇你自己建立的一個MANIFEST.MF檔案,因為系統預設選擇的是Generate the manifest file選項,而該選項不會將項目用到得第三方jar包打入到java項目產生的jar包中去。
自訂設定檔MANIFEST.MF :
首先在項目的根目錄下建立一個MANIFEST.MF檔案
接下來用記事本開啟該檔案,並編輯:
例如:
Manifest-Version: 1.0
Main-Class: StudentManager_Test
Class-Path: sqlserver2005.jar
其中的Manifest-Version是指程式的版本號碼,Main-Class是指程式的主方法入口類,slass-Path就指定了外來jar包的位置。請注意假設我們的項目打包後為project.jar,那麼按照上面的定義,應該在 project.jar的同層目錄下有相關的jar包(即sqlserver2005.jar,如果有引入多個第三方jar包,則可以用空格隔開)放在裡面。否則將會出現Exception in thread "main" java.lang.NoClassDefFoundError的錯誤。
有幾點需要注意的地方:
1:設定檔中的最後必須換行。
Manifest-Version: 1.0
Main-Class: src.guanyy.TimeTaskCreateData
Class-Path: sqlserver2005.jar
2:Main-Class:中的main函數可以帶包:例如:
Main-Class:(一個空格)src.guanyy.TimeTaskCreateData
中間空格不要忘記
3:Class-Path中的寫法如下:
Class-Path:(一個空格)lib\mysql-connector-java-5.1.18-bin.jar(一個空格)其他jar包
Class-Path: lib\mysql-connector-java-5.1.18-bin.jar lib\..