IDEA如何打包可運行jar圖文詳解

背景:

有時候,咱們會用IDEA來開發一些小工具,須要打成可運行的JAR包;或者某些項目不是WEB應用,純粹是後臺應用,發佈時,也須要打成可運行的JAR包。而且,若是依賴第三方jar時,又不但願第三方jar也打入最終的可運行jar包,而且還但願,組織下目錄結構(如把第三方jar文件,放到最終可運行jar包的並行目錄lib下)java

 

開發環境eclipse

OS: Windows 8.1ide

JDK: 1.7.0工具

開發工具: IntelliJ IDEA 13.1.1開發工具

 

步驟:ui

1. 選中Java項目工程名稱,在菜單中選擇 File->project structure... (快捷鍵Ctrl+Alt+Shift+S)。idea



 

2. 在彈出的窗口中左側選中"Artifacts",點擊"+"選擇jar,而後選擇"from modules with dependencies"。spa



 

3. 在配置窗口中配置"Main Class"。ip



 

4. 選擇「Main Class」後,選擇「copy to the output  and link via manifest」,配置「Directory for META-INF/MAINFEST.MF」,此項配置的缺省值是:D:\workshop\DbUtil\src\main\java,須要改爲:D:\workshop\DbUtil\src\main\resources,若是不這樣修改,打成的jar包裏沒有包含META-INF/MAINFEST.MF文件,這個應該是個IDEA的BUG(參考:http://stackoverflow.com/questions/15724091/how-to-run-a-jar-file-created-using-intellij-12),配置完成後以下圖所示,點擊OK進入下一步。(若是選擇「extract to the target jar」,即把第三方jar文件,打入最終的可運行jar包時,能夠不修改「Directory for META-INF/MAINFEST.MF」的配置,用缺省值便可)ci


 

5. 右鍵「<output root>」,選擇「Create Directory」,輸入目錄名:lib



 

6. 用鼠標按住第三方jar,拖入<output root>下的lib目錄下



 

7. 用鼠標選中咱們將要打出的jar包文件,點擊下方「Class Path:」後面的按鈕,在「Edit Classpath」窗口中,將每一個第三方jar文件前加上相對路徑:lib\,造成如:lib\xxx.jar的形式,這個目錄「lib」,就是前面輸入的那個「lib」,這裏若是第三方jar不少的話,能夠在「Edit Classpath」窗口中,用鼠標選中全部第三方jar,而後Ctrl+X,把內容cut & copy到UltraEdit裏,用列格式一會兒所有修改好,再paste到「Edit Classpath」窗口中。完成後以下所示:


 

8. 完成後,點擊OK,Apply等按鈕,回到IDEA的主菜單,選擇「Build - Build Artifacts」下的「Build」或者「Rebuild」便可生成最終的可運行的jar,並把第三方jar放到和此jar並行的lib目錄下,用winrar打開目標jar,能夠看到META-INF/MAINFEST.MF文件被正確包含,內容也正確。


 

9. 在jar包的輸出目錄下,執行命令:java -jar xxx.jar,便可運行jar文件。

 

PS:因爲idea,打的jar包不能依賴自身jar包裏面的內部jar包(eclipse支持)。所以如何涉及第三方依賴jar包請選擇eclipse打包:

相關文章
相關標籤/搜索