以前有同窗問我怎樣把本身的程序作得像Windows下的.exe文件那樣直接雙擊就可運行,由於你們都厭煩了Java在控制檯下的「javac」再「java」的操做方法。如今我就拿出當時給班裏的同窗寫的實驗指導來實現一下吧。你們互相學習。java
平時咱們寫了Java程序,每次都要在命令行提示符的控制檯下進行編譯、運行,並且只是在本機上進行的。若是咱們想要把本身開發的一些小遊戲之類的程序打包發給好友們互相學習,那就須要用到「jar」命令來打包生成雙擊就可運行的程序包了。固然,前提是對方的機器已經安裝了合適版本的JDK。函數
話很少說,直接用例子來講明問題吧。具體操做流程以下:工具
一、編寫一個GUI程序(其餘程序也可,只不過不夠直觀而已);學習
二、編寫名爲「manifest」的文件;spa
三、在控制檯中使用「jar」命令按照指定的方式進行代碼打包;命令行
四、雙擊生成的「jar」包,便可運行咱們的GUI程序了;3d
五、若上面第四步的方法不奏效,那麼就應該編寫Windows下後綴名爲「.bat」的批處理文件,再雙擊該.bat文件便可;blog
首先,咱們先在控制檯下查看一下「jar」命令的用法,就會比較清楚上面第2、3步驟的原理和操做了。在控制檯中輸入「jar」命令,結果以下:遊戲
你們也動手試一下,有比較清楚的實例能夠看。開發
實驗開始:
一、假設咱們編寫的GUI程序代碼以下,類名爲Week_9.java,必須包含main()函數:
代碼就不具體講明瞭,由於咱們能夠用其餘包含有public類,而且裏面有main()函數的Java程序來演示「jar」命令的打包用法,當咱們直接在控制檯下先「javac」再「java」的話,運行結果以下:
二、進入到編譯後生成Week_9.class 文件所在的目錄,新建一個名爲「manifest」的文件(能夠不用後綴名,用EditPlus能夠打開,或者直接命名爲manifest.txt也可,下面運用jar 命令打包時須要用到該文件,因此先後的文件名必須一致),以下圖:
注:該文件裏面的內容:Main-Class: Week_9,其中冒號「:」與類名之間必定要有個空格,這是Java規範,照作就好了。若public類屬於某一包,則寫:Main-Class: 包名.Week_9
三、根據步驟2中瞭解到的jar 命令的相關參數,在命令提示符窗口中執行如下命令:「jar -cvfm week9.jar manifest Week_9.class」,結果以下:可知當前目錄下生成了「week9.jar」壓縮文件,如圖:
四、此時,就能夠將打包後「week9.jar」文件發佈給任何安裝了Java運行時環境jre 的計算機了,若在咱們機器上雙擊該文件的圖標不能運行該文件,能夠爲Windows系統下的計算機再新建一個名爲「week.bat」(文件名可隨意)的批處理文件,內容爲「java –jar week9.jar」,具體以下圖:
五、最後,須要將「week9.jar」、 「week.bat」放在同一個目錄下(若是不想放在同一目錄下,那麼.bat文件裏面的在寫java命令時就應該給出具體要運行的java類的路徑了),而後雙擊「week.bat」文件便可運行該GUI程序了,運行結果與上面的同樣。
至此,你們就能夠把本身的程序打包發佈給朋友們了。
附:本例子的源代碼下載!
你們能夠繼續以下操做,稍微探索一下:
一、用解壓工具打開「week9.jar」文件,看看裏面包含了什麼內容;
其實,上面第2個步驟中在一個名爲「manifest」文件中寫入了「Main-Class: Week_9」是表明這個jar打包文件中運行程序的主類(必定是public的),由於主類中包含程序入口main()函數。
二、實際上.bat 批處理文件裏面的命令就至關於咱們平時在命令提示符窗口下輸入運行某個程序時輸入的同樣,請自行搜索批處理文件的相關知識。
原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。不然將追究法律責任。http://haolloyin.blog.51cto.com/1177454/335742