如問及回答here,python有沒有安裝程序的有用的部署方式。 Java可以做同樣的事情嗎?在沒有安裝jre的情況下運行java?
- 有沒有辦法在不安裝jre的情況下運行Java的jar文件?
- 有沒有類似java2exe(win32),java2bin(linux)或java2app(mac)的工具?
如問及回答here,python有沒有安裝程序的有用的部署方式。 Java可以做同樣的事情嗎?在沒有安裝jre的情況下運行java?
您可以使用Launch4j。有據可查,且易於使用。儘管生成的程序仍然需要運行JRE,但您不必在目標系統上安裝JRE。你可以把它複製到你的應用程序中,然後告訴Launch4j找到它,或者把它與其他所有東西包裝起來。
JRE文件在哪裏?使用Mac,我找到了/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/*,並用PC發現了Java/jre6/lib。我必須複製所有這些文件嗎? – prosseek 2010-07-30 13:30:16
您需要複製保留子目錄結構的兩個子目錄jre6/lib和jre6/bin。並告訴Launch4j在哪裏可以找到它,最好作爲可執行文件目錄的相對路徑。就我個人而言,我把bin和lib dirs放在我的可執行文件旁邊的一個名爲jre的子目錄中。 – haffax 2010-07-30 13:52:59
您可以將JRE嵌入您的應用程序中,併爲您的應用程序創建設置或安裝。
「爲什麼這個簡單的計算器應用程序是26 MB?」 – TheLQ 2010-07-31 01:15:19
此外,如果我發現某個程序未經我的同意在我的系統上祕密安裝了像Java這樣的安全威脅,我會非常生氣 – 2012-11-14 22:15:01
您可能想了解Eclipse如何執行它 - 它具有可以使用本地(對於安裝)JRE的本機.exe。
要創建本機可執行文件,您可以使用Excelsion Jet,它將Java編譯爲本機代碼。我們將它用於工作中的項目,並且我們不得不對原始源代碼(針對Sun的JDK)進行零修改。
常見問題解答:Excelsior JET不僅僅是Windows EXE/Linux二進制文件的Java應用程序包裝器。它確實將您的Java類文件編譯爲本機x86(IA-32)指令。生成的可執行文件需要運行Excelsior JET Runtime,但不能運行Sun JRE。 – TheLQ 2010-07-31 01:14:33
「生成的可執行文件需要Excelsior JET運行時才能運行」。 這是真的,但也可以將此運行時嵌入到生成的二進制文件中。二進制是自給自足的。在這個過程中,我相信可以剝離運行時以僅保留編譯應用程序中使用的部分。 – barjak 2010-08-02 11:36:41
相似的主題:http://stackoverflow.com/questions/664858/how-can-you-package-an-executable-jar-with-a-portable-jre – h3xStream 2010-07-30 13:15:04