有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于OpenJDK 11和OpenJFX 11(&Proguard)的java迁移问题

我们目前正在将一个Java应用程序从OracleJDK8(JNLP提供的应用程序代码)迁移到OpenJDK11(与Java运行时一起提供可运行的应用程序代码)。尽管我们在测试环境中或多或少找到了一个可行的解决方案,但我们仍然存在以下问题:

  1. 我们的应用程序需要JavaFX,我们希望使用jlink来构建。建议使用https://gluonhq.com/products/javafx上提供的OpenJFX jmods使用OpenJDK构建适当的jlink映像,还是有其他选项

  2. 目前,OpenJFX jmods似乎只在gluonhq上以版本11(为JDK 11编译)的形式正式发布,而Proguard模糊处理只在版本10之前为JDK编译代码(见https://sourceforge.net/p/proguard/feature-requests/188/)。尚不确定Proguard何时也将支持版本11。我们应该等到它出现,还是我们有什么选择?下载并构建针对版本10的OpenJFX源代码(我不知道这是否可以开箱即用),或者在Proguard不理解OpenJDK 11代码的情况下继续使用Oracle 10 JDK二进制文件和/或其javafx jmod文件,这是一个好的选择吗

  3. 我们正在进一步寻找一种工具,为Windows和MacOS创建用户友好的可运行文件(例如,无需修改注册表的自解压可执行文件)。javapackager目前似乎不可用(OpenJDK 12计划使用http://openjdk.java.net/jeps/343),并且既不支持交叉编译,也不支持自动更新机制。因此,我们正在寻找一种工具,它既可以实现a)自动更新(启动时动态加载应用程序代码或新的jlink映像),也可以实现b)构建Windows和MacOS的可运行性。有没有好的工具支持类似于Oracle JNLP启动器的自动更新机制,可以在生产环境中使用

  4. 对于JNLP,我们应用代码签名。是否仍然建议并可能签署a)位于jlink images中的应用程序代码和b)动态加载的应用程序代码,这两种代码都是用JDK11+构建的

谢谢你的帮助,彼得


共 (1) 个答案

  1. # 1 楼答案

    对于第三个问题,有Open Web Start解决方案,它使您能够使用最新的Java版本运行JNLP文件。这是Java Web Start技术的开源重新实现。此替换提供了Java Web Start和JNLP标准最常用的功能,因此您可以继续使用基于Java Web Start和JNLP的应用程序,而无需进行任何更改

    关于第四个问题,您可以使用Jarsignermaven插件,只要您为它提供私钥和jar的签名路径,就可以了