簡體   English   中英

使用捆綁的 jre 運行 java 安裝程序

[英]running java installer with bundled jre

我們目前提供應用程序的 java(jar) 安裝程序。 考慮到 jdk11 的變化,我們希望我們的用戶擁有同樣簡單的安裝體驗。 所以,我們正在尋找的是,即使沒有安裝 java,也只有一個可以運行的文件,它應該只是啟動我們舊的 java 安裝程序。

可能,這意味着我們要打包 jre 並有一個運行 jar 的腳本,但問題是如何在本地運行批處理文件? 我們需要它在 Windows 和 Mac 上工作。 我們正在研究的大多數工具都需要 java 來運行包裝好的 jar。

您必須構建 2 個不同的腳本/安裝程序,每個平台一個。 即使查看 Chrome 等非常流行的軟件,平台選擇仍然存在(即使您通常會根據瀏覽器提供的信息定向到正確的選擇)

根據您可以在此任務中投入多少時間,最快(也是最臟)的解決方案是為每個平台創建一個存檔,其中包含用於 Windows 的腳本.bat和用於 OS X 的.sh以及jre (每個平台也不同) ),要求用戶取消歸檔並運行腳本,該腳本將使用打包的 jre 運行您的 jar。 否則,您需要為 Windows 創建一個MSI/exedmg創建一個dmg (或其他安裝程序類型)。

我之前使用捆綁的 jre 完成了 dmg,如果需要,可以嘗試查找詳細信息(我不再訪問代碼,但可能可以找到詳細信息)。 這是一個免費的解決方案,但它確實需要一台 OS X 計算機來創建dmg

我以前使用過並且效果很好的一個選項是install4j,但價格不小。

LE: 獨立包裝——雖然我以前沒有用過這個,但它似乎是解決你問題的最佳選擇。

還有一個開源選項——packr

自包含包裝並沒有真正的幫助,packr 也是一樣,launch4j 也是如此。 因為所有這些只是生成一個包含大量文件和目錄的應用程序映像。

問題是在此之前,作為安裝程序,您需要 1 個大 exe(或 mac 的 dmg)來完成所有工作,單擊我們已經處於像 SCP 或 Packr 這樣的階段。 因為這很容易或當前 installer.exe 和 jre\\ sub dir 以及除此之外的批處理/sh 文件。 問題是如何從該目錄結構獲取運行的單個 exe。

所以我們應該擁有的是可以將其壓縮到自解壓存檔中的東西,當單擊它時它應該自動解壓到操作系統的臨時目錄,然后直接在其上運行命令(如批處理文件或直接在提取的dir: .\\jre\\bin\\javaw.exe -jar installler.jar) 但似乎沒有人做過這樣的事情,我們最接近的是帶有 Oomph 的 eclipse:

[1] https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/tree/plugins/org.eclipse.oomph.extractor/src/extractor.c

[2] https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/tree/plugins/org.eclipse.oomph.extractor.lib/src/org/eclipse/oomph/extractor/lib /BINEExtractor.java

問題是通過java進行提取並且仍然首先需要一個vm。

為此,正在開發一種新工具:jpackage

如果您的項目是使用Gradle構建的,那么您可以輕松使用Badass jlink插件: https : //github.com/beryx/badass-jlink-plugin使用帶有綁定的JVM的jpackage來構建安裝程序/軟件包

這是一篇文章,介紹如何使用OpenJDK 11和帶有jpackage的OpenJDK 14構建應用程序映像,僅用於構建安裝程序/軟件包: https : //walczak.it/blog/distributing-javafx-desktop-applications-without-requiring-jvm-使用jlink和jpackage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM