【问题标题】:How to bundle WebStart JNLP with JRE如何将 WebStart JNLP 与 JRE 捆绑在一起
【发布时间】:2016-01-18 15:36:37
【问题描述】:

我有一个大型 Java 应用程序,由于历史原因,它被开发为小程序(在 Web 浏览器中运行)。

现在我们有兴趣将其部署为与 JRE 捆绑的独立应用程序,exe4j 看起来很有希望。

但是有一个棘手的部分:当前小程序的代码库存储在本地 Web 服务器上,因此任何时候用户在远程 PC 上运行小程序 - 它都会从服务器下载 jar,因此始终运行最新版本。
在更新的情况下 - 我们的工程师只需更新服务器上的 jar 并在远程 PC 上重新启动小程序。

这是我们需要保留的东西。

如果我将小程序更改为独立的 Java 应用程序 - 我知道使用 JNLP 和 Web Start 运行它以保持这种“自动更新”功能的方式

但是是否可以将此 JNLP 用作 exe4j 的起点 - 我无法弄清楚。

所以最终结果应该是:捆绑了 jre 和我的应用程序的 exe 文件(可能带有 jre 等附属目录),它会根据服务器上的代码检查自身,并在运行前根据需要更新自身。

【问题讨论】:

    标签: java exe java-web-start jnlp exe4j


    【解决方案1】:

    但是是否可以将此 JNLP 用作 exe4j 的起点 - 我无法弄清楚。

    是的,不是的。 JWS 提供了一个“扩展安装程序”元素,该元素将在第一次应用程序时触发。已安装,当它被 Java 控制面板卸载时。但是 JWS 会期望“运行一次”安装程序不需要它擅长的自动更新类型,因此在更改时不会更新它。

    另一方面,要让 JWS 工作,JRE 必须存在,所以我看不出使用 exe4j 或捆绑 JRE 的优势。

    【讨论】:

    • 感谢您的快速回复,安德鲁。所以你说 JWS 不能与非系统 JRE 一起工作?好像它在应用程序的某个文件夹中,并且某种链接告诉该应用程序使用此 JRE 运行?我做对了吗?
    • “所以你说 JWS 不能与非系统 JRE 一起工作?” 不,绝对不是。 Oracle 甚至决定使用 JWS 应用程序。出于安全原因,无法强制使用特定(旧)JRE。但是为什么对捆绑的 JRE 感兴趣?有什么意义?
    • 关键是处理常规(独立)JRE 需要我们工程师的时间,如果我们可以提供一些经过测试和批准可以使用的 JRE,它将简化工作流程并降低一些成本我们的应用程序在我们的版本中,工程师不会再花时间在这上面了。
    • 我今天为我们的 java 应用程序创建了一个独立的 WPF 启动器应用程序。它使用new ProcessStartInfo(".\\jre\\bin\\javaws.exe", jnlpPath) 启动 java 并且工作正常,所以我不确定我是否真的让你正确使用捆绑的 JRE 和 Web Start
    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多