為什麼這篇Java執行exe鄉民發文收入到精華區:因為在Java執行exe這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者oikl1268 (迷路子)看板java標題Re: [問題] 在沒安裝jdk的電腦跑jar時間S...
包成runnable jar有個問題就是在沒有安裝jdk的電腦跑不了
我自己的做法是把包好的jar變成exe檔
然後連jre一起包給對方,檔案會因為jre變得很大,但可以免除叫對方安裝jdk的問題
我使用的是exe4j這套軟體
非免費軟體,但有試用版 .也有暗黑版
做法:安裝完後執行
1.welcome 第一次執行選擇next就好
2.project type 請事先先用eclipse把java專案包成jar檔 不是runnable jar
選第"jar in exe"mode
3.application info 第一欄隨便打 第二欄選擇你輸出exe檔的儲存位置
4.executable info 如果是console 選console就好 有用到gui就選gui
executable name是你輸出成exe檔的名稱
icon是你輸出的exe顯示的icon 其他不用動
5.java invocation class path先按右邊的+讀取你包好的jar檔
然後在main class選擇你jar中的main class
6.jre minimum 和 maximum是你的java程式需求的jre版本號,如果你最少要1.7才能跑
在minimum就輸入1.7 maximum可打可不打
之後選advanced options→search sequence
先把search sequence中的內容清空 並在jar檔所在的資料夾下創建"jre7"資料夾
這個資料夾名稱取決於你要求最低版本的jre,如果是1.6,就打"jre6"
然後回到exe4j,按右邊的+,並選擇你剛剛創建的jre資料夾位置
應該會看到在search sequence多了一個 "Directory .\jre7"
請確認這個路徑是 .\ 開頭
確認完後按next 在preferred vm選擇client hotspot vm
7.8.9都一直按next就好 最後就會輸出exe
10.整個執行完後選擇finish會問你要不要儲存這個exe4j專案,如果需要多次修改的情況
可以把exe4j專案儲存,之後再執行exe4j時就可以在1.的時候選擇open讀取專案了
最後一步是請將位於你C:\Program\java的jre資料夾複製到exe檔的所在資料夾
我自己複製時是使用32bit版本的jre才可以正確執行
接下來就是依照你的程式需求對jre進行瘦身,把裡面不需要的jar刪掉
如果不確定哪個jar不需要,只要刪掉後仍然可以正確啟動程式就表示你的程式不需要
雖然最後你這個程式仍然會很龐大(約75~100mb)
但某方面來說,可以不用特地教對方安裝jre,尤其是大量發布時
這是我把java程式發給沒安裝jdk的人的做法
※ 引述《r801129 (阿嘎)》之銘言:
: 本身我的電腦有安裝jdk, 今天幫朋友寫一支JAVA程式
: 我用eclipse包成runnable jar file, 在我的電腦可以跑
: 傳給他跑時發現不能執行, 自己google很多資料, 用了很多方法
: 例如: 轉成exe, 更改MANIFEST.MF 還是不能 最後請我朋友安裝jdk後就能執行了
: 後來我又用一個方法: 把jdk跟jar放在一起, 寫了一個startup.bat去執行
: 我朋友電腦顯示 "不是正確的win32應用程式"
: 請問有什麼辦法可以讓jar在沒有安裝jdk的環境下執行?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.154.198