2015-04-23 199 views
4

我試圖使用launch4j將JRE捆綁到我的exe文件中。使用Launch4J將JRE捆綁到一個exe文件中

我的文件夾結構如下 -

|- test 
    |- jre(copied from my windows installation of jre) 
     |-bin 
     |-lib 
    |- jretest.jar (the jar file I am using to create my exe) 
    |- jretest.exe (the output exe file) 

在Launch4j,我已經設置了Bundled JRE Pathjre

該exe文件目前工作良好。

但是,當我複製我的exe文件在其他地方並運行它時,我收到錯誤消息This application was configured to use a bundled Java Runtime Environment but the runtime is missing or corrupted

我已經搜索過,發現了以下問題,但無法讓我的應用程序與在那裏給出的建議一起工作。

How do I bundle a JRE into an EXE for a Java Application? Launch4j says "runtime is missing or corrupted."

How to bundle a JRE with Launch4j?

任何想法可能是錯在這裏要和它捆綁了JRE?

我該如何製作獨立的exe文件?

我不想爲我的應用程序做一個安裝程序,只是打算運行它。

任何幫助將不勝感激。

+0

您是否嘗試過使用cmd在此JRE上運行Jar?它在lauch4j上非常直接,只需鍵入JRE文件夾的名稱,並看到它與jar/exe文件位於同一文件夾中。也許你的JRE被破壞了。 – Renatols

+0

解決了最初的問題(我假設我的jre有問題,我再次刪除並複製它,並開始工作)。當它與原始jar文件位於相同的文件夾中時,exe工作得很好。但是當我將exe複製到其他地方時,它停止工作(顯示jre丟失或損壞的錯誤)。我怎樣才能使exe完全獨立? – Pranav

+0

獨立是什麼意思?如果您希望能夠運行.exe,無論它在哪裏,您都可以指定絕對路徑而不是相對路徑,例如C:\ Java \ JRE。 – Renatols

回答

2

使用launch4j不可能將JRE放入exe文件中。 launch4j的'bundle'選項僅僅意味着你將你的EXE與JRE一起分發,所以一起。您可以通過將以下選項添加到您的config xml文件中來完成此操作。

<jre> 
    <path>.....</path> 
</jre> 

這是您指定的路徑JRE相對於可執行重要的,否則,如果您將exe文件到另一個位置(或到另一臺計算機)將無法正常工作。您得到的錯誤信息是因爲您沒有將JRE移動或複製到您的exe文件中,所以可執行文件無法再找到JRE。

或者,如果您不使用捆綁軟件選項,launch4j將嘗試使用系統JRE,如果它找不到一個用戶重定向到Oracle JRE下載頁面。如果這不是你想要的,並且你真的想要一個單獨的exe文件進行發佈,那麼你唯一的選擇就是使用像NSIS或Inno Setup這樣的安裝程序。

相關問題