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


 

背景:

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

 

開發環境

OS: Windows 8.1

JDK: 1.7.0

開發工具: IntelliJ IDEA 13.1.1

 

步驟:

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文件。


免責聲明!

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



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