1. 程式人生 > >IDEA生成可執行jar文件

IDEA生成可執行jar文件

tcl 文件 開發 end 控制臺程序 問題 uil meta getc

場景

用IDEA開發一個Java控制臺程序,項目完成後,想打包給客戶使用。

做法

首先用IDEA打開要生成jar的項目,打開後選擇File->Project Structure...

技術分享圖片

選擇Artifects選項再點擊+號

技術分享圖片

選擇JAR,再選擇From modules with dependencies...,來新增一個Artifect

技術分享圖片

彈出對話框讓我們配置這個Artifect

  • Main Class 選擇程序入口類,也就是main方法所在的類
  • Directory for META-INF/MANIFEST.MF,選擇入口類所在的src目錄

技術分享圖片

設置完後點擊OK

如果想要將資源文件(圖片,音頻,視頻,二進制文件等)打包到jar中。在Output Layout標簽卡下,點擊+,選擇Directory Content

技術分享圖片

選擇你想打包的文件所在的文件夾,這裏我選擇assets

技術分享圖片

這樣子做之後,如果直接打包會把assets目錄下的文件和文件夾打包進jar,不會把assets目錄本身打包進jar,如果想連同assets目錄打包進jar,那麽繼續。

在我們剛添加的項右鍵,點擊Surround With...

技術分享圖片

選擇Directory

技術分享圖片

創建一個文件夾將它包裹起來。

技術分享圖片

包裹起來後,點擊OK回到IDEA主界面

技術分享圖片

最後,點擊Build->Build Artifacts...,生成jar文件。

技術分享圖片

生成的jar文件在工程目錄下的classes/artifacts/<工程名>_jar下找到

java -jar

命令嘗試運行生成的jar,沒有問題。說明生成成功

技術分享圖片

我們查看jar裏面的文件結構,也符合預期。

技術分享圖片

讀取資源

在java代碼中,如果要讀取資源,可以通過<ClassName>.class.getClassLoader().getResourceAsStream(path);這種方式得到一個資源文件的InputStream。

上面的getResourceAsStream方法,path參數要傳進去資源的相對路徑,比如在jar中的assets目錄下有個sound.mp3的文件,那麽就寫getResourceAsStream("assets/sound.mp3")

IDEA生成可執行jar文件