Eclipse打Jar包的方法


Eclipse將引用了第三方jar包的Java項目打包成jar文件的兩種方法

Eclipse打包成jar文件的兩種方法

關於引用第三方jar包,生成自己jar包運行時找不到第三方jar包的解決方案 

一,不包含其他額外的Jar包(我這里沒指定默認運行主類,可以指定)

1. Eclipse項目打成Jar包

右鍵該項目名稱,選擇Export,之后選擇Java中的JAR file,之后點擊next,之后在JAR file中填入JAR包名稱,點擊finish即可。生成的jar包在workspace中。

2. 運行JAR包中指定的main方法

比如我的main方法在com/xx/javaproject/test,名字是HelloWorld。 jar包名稱是TestJavaProject.jar

就可以執行如下命令:

java -cp TestJavaProject.jar com.xx.javaproject.HelloWorld start

3. 也可以在TestJavaProject.jar相同目錄下創建.sh或者.bat文件執行

 在linux,創建腳本文件執行,創建TestJavaProject.sh,添加如下內容

1 #!/bin/bash
2 java -cp TestJavaProject.jar com.xx.javaproject.HelloWorld start 

然后在命令行輸入:

1 ./TestJavaProject.sh  或者  sh TestJavaProject.sh  或者 bash TestJavaProject.sh

 在windows,創建批處理文件執行,創建TestJavaProject.bat,添加如下內容

1 java -cp TestJavaProject.jar com.xx.javaproject.HelloWorld start 

 

二、包含其他額外的Jar包(指定默認運行主類)

eclipse創建項目,如何引入額外Jar包? 

創建Java Project之后,右鍵項目名,選擇 new folder,創建一個lib;之后把需要的各類Jar包拷貝到lib目錄下;然后右鍵項目,選擇Build Path--》Configure Build Path--》Libraries,選擇Add JARS,之后選擇該項目lib下的所有Jar包,確定即可。

 

 方案一:用Eclipse自帶的Export功能,用JAR file方式(一)

1. 准備主清單文件 “MANIFEST.MF”

由於是打包引用了第三方jar包的Java項目,故需要自定義配置文件MANIFEST.MF,在該項目下建立文件MANIFEST.MF,內容如下:

1 Manifest-Version: 1.0
2 Class-Path: lib/commons-beanutils-1.8.0.jar lib/commons-beanutils-1.8.0.jar lib/commons-lang-2.4.jar lib/commons-logging-1.1.3.jar lib/ezmorph-1.0.6.jar lib/json-lib-2.3-jdk15.jar lib/mysql-connector-java-5.1.27.jar
3 Main-Class: com.zc.mysql2json.trans.test.TestEvents

第一行是MAINIFEST的版本,第二行Class-Path就指定了外來jar包的位置,第三行指定我們要執行的MAIN java文件。

這里要注意幾點:

1、Class-Path: 和Main-Class: 后邊都有一個空格,必須加上,否則會打包失敗,錯誤提示為:Invalid header field;

2、假設我們的項目打包后為TestMysql2Json.jar,那么按照上面的定義,應該在 TestMysql2Json.jar的同層目錄下建立一個lib文件夾(即lib文件和打包的jar文件
在同一個目錄下),並將相關的jar包放在里面。否則將會出現“Exception in thread "main" java.lang.NoClassDefFoundError”的錯誤;

3、Main-Class后面是類的全地址,比如你的主文件是TestEvents.java,文件里打包為package com.zc.mysql2json.trans.test; 那么這里就寫com.zc.mysql2json.trans.test.TestEvents,
不要加.java后綴,主文件地址寫錯將會出現“找不到或無法加載主類”的錯誤;

4、寫完Main-Class后一定要回車(即最后一行是空白行),讓光標到下一行,這樣你生成的jar包才能找到你的主class去運行,

否則將會出現“jar中沒有主清單屬性”的錯誤。

步驟2:右擊Java工程選擇Export—>選擇JAR file—>Next

 

步驟3:選擇要打包的文件,不需要的文件不必打包,減小打包后的jar文件大小,並進行選項配置如下

這里有幾個選項:

1 * Export generated class files and resources 表示只導出生成的.class文件和其他資源文件
2 * Export all output folders for checked projects 表示導出選中項目的所有文件夾
3 * Export java source file and resouces 表示導出的jar包中將包含你的源代碼*.java,如果你不想泄漏源代碼,那么就不要選這項了
4 * Export refactorings for checked projects 把一些重構的信息文件也包含進去

步驟4:選擇我們配置文件路徑, 選擇我們在第一步中自定義的配置文件路徑,這一步很重要,不能采用默認選項

這里解釋一下配置項:

* Generate the manifest file:是系統幫我們自動生成MANIFEST.MF文件,如果你的項目沒有引用其他class-path,那可以選擇這一項。
* Use existing mainfest from workspace:這是可以選擇我們自定義的.MF文件,格式如上所寫,引用了第三方包時選用。
* Seal content:要封裝整個jar或者指定的包packet。
* Main class:這里可以選擇你的程序入口,將來打包出來的jar就是你這個入口類的執行結果。

最后Finish,即生成了我們要的jar文件。

在命令行運行如下命令

1 java -jar TestMysql2Json.jar 或者 java -cp TestMysql2Json.jar com.zc.mysql2json.trans.test.TestEvents start (指定含main的類執行)

或者也可以在 TestMysql2Json.jar 相同目錄下創建.sh或者.bat文件執行

 在linux,創建腳本文件執行,創建TestMysql2Json.sh,添加如下內容

1 #!/bin/bash
2 java -jar TestMysql2Json.jar
3 #或者指定類運行
4 #java -cp TestMysql2Json.jar com.zc.mysql2json.trans.test.TestEvents start

然后在命令行輸入:

1 ./TestMysql2Json.sh  或者  sh TestMysql2Json.sh  或者 bash TestMysql2Json.sh

 在windows,創建批處理文件執行,創建TestJavaProject.bat,添加如下內容:

1 java -jar TestMysql2Json.jar
2 #或者指定類執行
3 #java -cp TestMysql2Json.jar com.zc.mysql2json.trans.test.TestEvents start

 

方案二:用Eclipse自帶的Export功能,用Runnable JAR file方式(二)   ( 【圖文】Eclipse導出jar包過程【jar file與runnable jar file區別】

1. 點擊項目,右擊選擇Export,接着選擇Runnable JAR file,接着點擊next;

2. 在Launch configuration中選擇要打包的主類(mian方法),如果沒有,先運行一下該主類,就會顯示出來; 接着在Export Destination中選擇保存Jar包的位置以及名稱;最后選擇Library handling

1 library handling中,(自己這三種都試一下)
2 第一個為提取extract需要的依賴的庫或jar合成到jar文件里; 
(把自己的項目class以及lib中jar包中的class,混合在一起);
其它項目中直接引用該jar包,不需要加入它所需的額外jar包,就可以執行我們的類(但可能和項目引入的額外jar包引起jar包沖突);命令行也可以直接運行 java -jar XXX.jar
3 第二個則僅僅打包依賴庫到jar文件;
(把依賴的外部jar包,引入我們jar文件中)
其它項目中直接引用該jar包,但需要加入它所需的額外jar包,才可以執行我們的類,造成jar包重復;命令行也可以直接運行 java -jar XXX.jar
4 第三個則把依賴庫放到一個文件夾中。
(沒有外部依賴的jar包,只有自己的類)
其它項目中直接引用該jar包,需要加入它所需的額外jar包,就可以執行我們的類;命令行也需要引入依賴jar包,才能運行 java -jar XXX.jar

 生成好相應Jar包

在命令行運行如下命令

1 java -jar TestMysql2Json_run.jar

或者也可以在 TestMysql2Json.jar 相同目錄下創建.sh或者.bat文件執行

 在linux,創建腳本文件執行,創建TestMysql2Json.sh,添加如下內容

1 #!/bin/bash
2 java -jar TestMysql2Json_run.jar

然后在命令行輸入:

1 ./TestMysql2Json.sh  或者  sh TestMysql2Json.sh  或者 bash TestMysql2Json.sh

 在windows,創建批處理文件執行,創建TestJavaProject.bat,添加如下內容:

1 java -jar TestMysql2Json.jar

 

方案三:安裝Eclipse打包插件Fat Jar 

( fatjar eclipse4.4 java項目的jar包一起打包 net.sf.fjep.fatjar_0.0.32.jar  Eclipse高版本無法兼容FatJar的問題解決    Eclipse4.X版本安裝fatjar插件(luna mars 版本均可用) 

    eclipse高版本4.5安裝Fat Jar  )

方案一對於含有較多第三方jar文件或含有第三方圖片資源等就顯得不合適,太繁瑣。這時可以使用一個打包的插件—Fat Jar。
Fat Jar Eclipse Plug-In是一個可以將Eclipse Java Project的所有資源打包進一個可執行jar文件的小工具,可以方便的完成各種打包任務,我們經常會來打jar包,但是eclipse自帶的打包jar似乎不太夠用,Fat Jar是eclipse的一個插件,特別是Fat Jar可以打成可執行Jar包,並且在圖片等其他資源、引用外包方面使用起來更方便。

安裝方法:

1. Eclipse在線更新方法 ( 安裝失敗提示:  )
Help > Install New Software > Add,
name:Fat Jar
location:http://kurucz-grafika.de/fatjar

2. Eclipse插件手動安裝方法 ( 重啟沒有該插件,因為目前fatjar版本只支持eclipse 3.4前 )

所以下載net.sf.fjep.fatjar_0.0.32.jar,能支持更高版本的eclipse4.4及更高  http://files.cnblogs.com/files/milanmi/net.sf.fjep.fatjar_0.0.32.jar.zip

最新版下載地址:https://sourceforge.net/projects/fjep/
下載地址:http://downloads.sourceforge.net/fjep/net.sf.fjep.fatjar_0.0.27.zip?modtime=1195824818&big_mirror=0
將解壓出的plugins中的文件復制到eclipse安裝目錄中的plugins目錄下,然后重啟eclipse即可。

打開Eclipse之后,右擊要打包的工程,出現一個“Build Fat Jar”,點擊它。如果沒有出現它,可以選擇“Export”,從彈出的對話框中選擇“other”-->"Fat Jar Exporter",點擊Next,選擇要打包的項目,再點擊Next。

 參考  fatjar eclipse4.4 java項目的jar包一起打包 net.sf.fjep.fatjar_0.0.32.jar     Eclipse中打包插件Fat Jar的安裝與使用  

使用方法:

步驟1:右擊工程項目選擇Buile Fat Jar  (圖不太符合我的項目,我的項目是 TestMysql2Json)

 

步驟2:配置jar文件存放目錄,主Main文件等,如下圖 (默認是在項目下。可以選擇自己配置路徑,點擊use extern Jar-Name)

步驟3:選擇所要用到的第三方jar包

步驟4:最后Finish,即生成了我們要的jar文件,十分方便。

步驟5:在命令行運行如下命令

1 java -jar TestMysql2Json_fat.jar  或者 java -cp TestMysql2Json_fat.jar com.zc.mysql2json.trans.test.TestEvents start (指定類執行)

或者也可以在 TestMysql2Json_fat.jar 相同目錄下創建.sh或者.bat文件執行

 在linux,創建腳本文件執行,創建TestMysql2Json_fat.sh,添加如下內容

1 #!/bin/bash
2 java -jar TestMysql2Json_fat.jar
3 # 指定類執行
4 #java -cp TestMysql2Json_fat.jar com.zc.mysql2json.trans.test.TestEvents start

然后在命令行輸入:

1 ./TestMysql2Json_fat.sh  或者  sh TestMysql2Json_fat.sh  或者 bash TestMysql2Json_fat.sh

 在windows,創建批處理文件執行,創建TestJavaProject.bat,添加如下內容:

1 java -jar TestMysql2Json_fat.jar
2 #指定類執行
3 #java -cp TestMysql2Json_fat.jar com.zc.mysql2json.trans.test.TestEvents start

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM