我有一个有效的 JNLP 应用程序,我需要将它分发给各种非技术最终用户。
如果用户的机器安装了最近的 JVM,那么一切都很好。他们只需双击我发送给他们的 JNLP 文件,其余的由 Java Web Start 完成。
现在我想分发一些可以在有或没有 JVM 的情况下工作的东西,例如.exe
,如果没有兼容的 JVM,则自动下载一个文件,然后调用javaws.exe
以下载 .jar 文件并启动应用程序。
Launch4J 是我找到的最接近的匹配项,但它无法通过javaws.exe
. 唯一的选择是java
和javaw
我想要一个可以:
.exe
生成不需要预装JVM的自包含文件- 解析
.jnlp
文件并在必要时确定要下载的正确 JVM(我知道 Java Web Start 可以在必要时下载 JVM,但我想避免下载两个,第一个引导 Java Web Start,第二个运行应用程序可能需要特定但不同的 JVM。) - 自动下载并安装 JVM,而不是简单地将用户引导至 Java 下载页面或打开新的安装向导。
- 如有必要,提示输入管理员密码(以获得安装 JVM 的权限。我不认为这是内置在 Sun JVM 安装程序中的。)
- 仅显示一个安全对话框(我只想提示用户一次,以确认他们信任生成的
.exe
..jar
.) 我认为这将需要自动下载器在启动 JWS 之前安装证书。) - (非必需)
.jar
与 JVM 同时在后台下载应用程序资源(例如文件)。这将要求缓存在安装 JVM 之前运行,因此缓存必须在本机代码中实现,并且DownloadService
稍后将使用 JNI 与其接口。
有这样的产品吗?我怀疑它没有,但值得一试。
更新我发现这篇文章有一些相关问题的解决方案,虽然它是为离线安装而设计的,我主要关心在线安装。