Re: [問題] 在沒安裝jdk的電腦跑jar

看板java作者 (迷路子)時間13年前 (2012/07/28 15:22), 編輯推噓5(509)
留言14則, 3人參與, 最新討論串2/4 (看更多)
包成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

07/28 21:41, , 1F
不用這麼麻煩,還要用"試用版"軟體來打包
07/28 21:41, 1F

07/28 21:45, , 2F
jre目錄跟jar放在同個資料夾內,批次執行+開頭SET環境
07/28 21:45, 2F

07/28 21:54, , 3F
不是正確32...那個問題,你是用Java7_64寫的嗎?
07/28 21:54, 3F

07/28 21:57, , 4F
如果對方是32位元系統,你丟jdk7_64的給他run會有問題
07/28 21:57, 4F

07/28 21:59, , 5F
我是jdk6(32or64)給對方jre+jar+批次+批次開頭SET環境
07/28 21:59, 5F

07/29 00:00, , 6F
我用 eclipse 打包的JAR 好像只要有安裝JAVA 就可以使用?
07/29 00:00, 6F

07/29 00:03, , 7F
我只只安裝http://www.java.com/zh_TW/ 這個
07/29 00:03, 7F

07/29 00:05, , 8F
這是你們所說的JDK 嗎? 還是JRE ?
07/29 00:05, 8F

07/29 00:21, , 9F
可以先了解什麼是JDK跟JRE
07/29 00:21, 9F

07/29 00:29, , 10F
我知道 JDK 是JAVA 開發工具包,一般人不需要安裝
07/29 00:29, 10F

07/29 00:31, , 11F
而我前面貼的網址裡面說明,應該是屬於 JRE,是執行環境
07/29 00:31, 11F

07/29 00:32, , 12F
依照我的實驗 執行 JAR 不需要 安裝JDK 只要安裝JRE
07/29 00:32, 12F

07/29 01:17, , 13F
我不是原po啦~我只是提供個人常用的作法,針對"主題"
07/29 01:17, 13F

07/31 15:43, , 14F
我是用Jsmooth包的
07/31 15:43, 14F
文章代碼(AID): #1G4vD3q4 (java)
文章代碼(AID): #1G4vD3q4 (java)