2011-07-29 23 views
9

如何使用JRE分發我的應用程序jar?我使用launch4j在exe中製作可執行文件。使用JRE分發我的應用程序jar

我的應用程序是基於桌面的swing應用程序。我想讓它像一個應用程序,如果用戶沒有安裝JRE,他們可以通過使用嵌入式JRE來使用它。我給JRE提供應用程序並使用它。卸載應用程序和JRE將像遊戲一樣卸載。

據我所知,如果我給我的應用程序預裝JRE,它會發生。我還看到了launch4j中的標籤JRE,但我不明白我會給出哪條路。 This鏈接我也看到了,但沒有程序或有用的鏈接給出的地方總的過程是明確定義的。

請給出一些明確的答案。如果你的回答是基於launch4j,我會更喜歡。

回答

5

如何分配您的應用程序?你有安裝程序嗎?

如果您確實有安裝程序,則可以將其與任何jre捆綁在一起並配置launch4j以使用它。

我所做的重建你的使用情況:

  1. 創建一個目錄,例如C:\ temp將我的jdk從C:\ Program Files \ Java \ jdk1.6.0_23複製到C:\ temp \ myownjdk1.6.0_23配置
  2. launch4j使用我的JDK:在JRE選項卡中,輸入「myownjdk1.6.0 _23「作爲
  3. 捆綁的JRE路徑和我配置爲」僅使用私有JDK運行時「 - 儘管我不確定這是否真的有必要。

我使用了JDK,但我相信你可以用JRE做同樣的事情。 另外,我非常肯定你必須(或可以)爲你的包使用相對路徑(就像我一樣)。

這是我的配置文件:

<launch4jConfig> 
    <dontWrapJar>false</dontWrapJar> 
    <headerType>gui</headerType> 
    <jar>C:\temp\demoapp.jar</jar> 
    <outfile>C:\temp\thing.exe</outfile> 
    <errTitle></errTitle> 
    <cmdLine></cmdLine> 
    <chdir></chdir> 
    <priority>normal</priority> 
    <downloadUrl>http://java.com/download</downloadUrl> 
    <supportUrl></supportUrl> 
    <customProcName>false</customProcName> 
    <stayAlive>false</stayAlive> 
    <manifest></manifest> 
    <icon></icon> 
    <jre> 
    <path>myownjdk1.6.0_23</path> 
    <minVersion></minVersion> 
    <maxVersion></maxVersion> 
    <jdkPreference>jdkOnly</jdkPreference> 
    </jre> 
</launch4jConfig> 
+0

我做同樣的事情,它是工作,但如果我DONOT給我TEST.EXE在我的Java(JRE)目錄也不會發現JRE我想使它更有活力的像遊戲意味着它將有一個exe文件,如果我點擊它將提取jre並提供一些目錄選擇選項並創建快捷方式選項是否可以使用launch4j.Please回覆。 – moin

+0

那麼這應該是那麼你的安裝程序: 讓用戶提取您的包(yourapp.exe,yourapp.jar和參閱yourJDK目錄),他所選擇的目錄。這將使JRE相對於yourapp.exe。 其中一個可能有所幫助:http://java-source.net/open-source/installer-generators launch4j做它應該做的,但它不是一個完整的部署/安裝程序包。 – PhilW

+0

Yes.yes你是對的其實我想問的是,如果你知道在launch4j或其他開源安裝程序這個選項,如果你能給我一些name.Actually我要讓我的應用程序如遊戲或其他軟件,其中一個exe文件是存在的,如果你點擊它會自動提取所有內容並可以使用它。 – moin

2

一個更好的策略是啓動應用程序。使用Java Web Start。使用deployJava.js可確保提供適合的Java最低版本。用戶可能已經安裝了合適的JRE(因此不需要下載),並且一旦他們選擇卸載應用程序,就會將其用於其他Java應用程序和小程序。

這並不符合您的某些要求,但它總體上是一個優越的選擇。

+0

低調選民會分享爲什麼這個答案對他們來說是不可接受的嗎? –

+0

+1即使它不是最合適的,至少應該考慮使用[tag:java-web-start]進行部署。 – trashgod

+0

Java webstart預先要求Java:這看起來像雞和雞蛋問題,它不適合於給定的問題。 – Panayotis

1

您還可以檢出BitRock InstallBuilder

我們爲Java提供了非常好的支持 - 既檢測它是否存在,也容易包含JRE並構建啓動器二進制文件。

你可以在這裏找到更多的信息: http://installbuilder.bitrock.com/docs/installbuilder-userguide/ar01s17.html#_bundling_a_jre

而Java組件/ JRE文件: http://installbuilder.bitrock.com/java/

從上面的鏈接中的文件,它是在您的項目設置幾個變量簡單安裝程序將工作。

這不是免費的,但如果你的項目是開源的,可以申請可用於創建應用程序安裝一個免費的開源許可證。

免責聲明:我的BitRock InstallBuilder的開發商之一,所以我有偏見。

0

我已經創建了自己的launch4j版本,允許自動下載和安裝所需的JRE - 無人蔘與 - (它顯示下載進度,沒有安裝進度,也沒有將JRE安裝程序下載到其他目錄的選項)安裝程序的工作目錄 - 如果有人對此感興趣,我可以添加此功能)。只需轉到launch4j的「JRE」選項卡即可設置您的選項。此外,這僅適用於GUI安裝,而不適用於現在的控制檯。在這裏你可以得到它:https://github.com/maztan/launch4j_auto_jre_download