首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JRE部署JavaFX 11桌面应用程序

如何使用JRE部署JavaFX 11桌面应用程序
EN

Stack Overflow用户
提问于 2018-11-24 05:40:29
回答 2查看 18K关注 0票数 39

我有一个JavaFX (JDK8)桌面业务应用程序,它使用Java Web Start进行部署。用户安装了Java 8,他们只需转到URL (我的AWS Linux服务器上的一个公共URL ),然后应用程序就会下载/启动(使用Web Start)。通过将新JAR部署到服务器,我也可以轻松地更新应用程序。一切都运行得很好。

然而,Oracle已经停止了Java 11的Web Start,在2018年3月的“Java客户端路线图更新”白皮书中,他们建议将JRE与应用程序捆绑在一起(“因此,应用程序与独立的JRE分开分发的概念很快就消失了。”)。我不能指望我的用户继续使用Java8进行Web Start,即使他们继续使用Java8,甲骨文也需要许可证才能继续使用Java8(我没有,这可能非常昂贵,而且我更愿意与社区一起转向JavaFX 11和OpenJDK)。

我想迁移到JavaFX 11。我遵循了OpenJFX的“Getting Started JavaFX11”(https://openjfx.io/openjfx-docs/),使用OpenJDK 11.0.1和Gluon的JavaFX SDK 11.0.1 (在Netbeans 10vc2上),并且已经能够运行示例应用程序(在我看来,我应该能够很容易地将我的JavaFX 8代码移植到JavaFX 11)。

然而,这就是我被困在方向上的地方。如何将其与JRE捆绑在一起,并将其部署到我的最终用户(并提供应用程序更新)?有没有简单的方法(或者甚至是困难的方法,有一些方向/指南)?

我可以花几百个小时在JavaFX 11中编写富有表现力、丰富而有用的桌面业务应用程序,但是我该怎么办呢?

部署工具包,如JWrapper、InstallAnywhere等,是否适合这个Java11的新时代?Gluon/openjfx.io是否有我遗漏的推荐或指南?我似乎找不到任何来自可靠来源的建议或指南,对于我们这些专注于编写前端代码的开发人员来说,他们是如何部署应用程序的。

感谢您的帮助或指导。

EN

回答 2

Stack Overflow用户

发布于 2020-03-28 23:34:52

为了更容易使用集成开发环境,我使用Intellij Idea;构建自动化,我使用gradle;jlink插件,我使用badass Jlink插件- https://badass-jlink-plugin.beryx.org/releases/latest/#jpackageImage。然后,您可以轻松地使用jlink和jpackage。这只是个想法。

票数 1
EN

Stack Overflow用户

发布于 2021-11-22 17:22:25

虽然其他答案有很多关于如何手动完成此操作的细节,但也可以使用构建工具插件,例如Maven。

例如,使用plugin,在JavaPackager中简单地添加如下内容可能已经足够了:

代码语言:javascript
复制
<plugin>
    <groupId>io.github.fvarrui</groupId>
    <artifactId>javapackager</artifactId>
    <version>1.6.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>package</goal>
            </goals>
            <configuration>
                <mainClass>...</mainClass>
                <bundleJre>true</bundleJre>
                <platform>windows</platform>
            </configuration>
        </execution>
    </executions>
</plugin>

运行mvn package将在“目标”中生成一个包含可执行文件的目录,一个"jre“目录和一个"libs”目录。该插件还可以生成安装程序文件。

显然,对于不同的平台,您需要调整配置,但我在Windows上使用JDK 16和17测试了这一点,它似乎工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53453212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档