【发布时间】:2023-01-23 23:40:41
【问题描述】:
我有一个公开可用的 Java 8 桌面应用程序,其中包含我想更新到 Java 17 的 MSI 安装程序。
目前的用户体验是这样的:
- 用户下载 MSI 安装程序并运行它
- MSI 安装程序检查兼容的 Java 8 VM,如果不存在,提示用户从 http://java.com 安装一个。
- 用户启动
application.exe,这是一个基本上运行java jar application.jar的垫片。我很难理解的是,用户应该在 Java 9+ 世界中安装什么。例如,如果我将用户发送到:https://www.oracle.com/java/technologies/downloads/,他们会收到下载 Java 开发工具包的欢迎,这对用户来说是一件令人困惑的事情(“这样对吗?我不想开发东西??”)。
此外,当您登录 http://java.com 时,它说“如果您被要求下载 java,很可能是这个”,这意味着如果您发布应用程序,您应该使用 Java 8(并且忘记 OpenJDK pre version 的 JavaFX 灾难11,只使用 Orcale Java)...
我的印象是,在 Java 9 之后,Jigsaw 的承诺是构建一个包含本机运行时和 jar 的包,所有这些都整齐地捆绑在一起,这样最终用户必须安装 JVM 的日子就结束了。但是在网上搜索时,我发现 Gradle 或 IntelliJ(或 Eclipse)对此没有支持,所以这看起来有点像白日梦?
如果我想发布 Java 17 应用程序,用户是否需要安装 JDK?如果没有,我应该如何打包和发送我的应用程序?
【问题讨论】:
-
这实际上取决于您的目标受众,但 IMO 最舒适的方法是在您的应用程序中安装/捆绑 JDK(或其中的一个子集)。例如,这就是 IntelliJ IDEA/Android Studio 所做的。通常,在许可方面,非 Oracle 发行版不那么麻烦。 This answer 可能有助于选择合适的。
-
目标受众是 joe-and-jane-gamer。
-
@JoachimSauer 你有没有提到我在哪里可以看到这样做的常用方法?
标签: java release java-platform-module-system