IDEA如何打包可運行jar,外部引用jar包版

背景:

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

開發環境

OS: Windows 7

JDK: 1.8.0

開發工具: IntelliJ IDEA 14

步驟:

1. 選中Java項目工程名稱,在菜單中選擇 F12



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


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


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”的配置,用缺省值即可



5. 右鍵“<output root>”,選擇“Create Directory”,輸入目錄名:libs



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


7. 用鼠標選中我們將要打出的jar包文件,點擊下方“Class Path:”後面的按鈕,在“Edit Classpath”窗口中,將每個第三方jar文件前加上相對路徑:libs/,形成如:libs/xxx.jar的形式(注意是 / ,而不是 \),這個目錄“libs”,就是前面輸入的那個“libs”,這裏如果第三方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文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章