当前位置: 首页 > 知识库问答 >
问题:

有关OpenJDK 11的迁移问题

施飞雨
2023-03-14

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

>

  • 我们的应用程序需要JavaFX,我们希望使用jlink进行构建。是否建议使用https://gluonhq.com/products/javafx上提供的OpenJFX jmod来使用OpenJDK构建适当的jlink映像,或者是否有其他选项?

    OpenJFX jmods似乎目前仅在gluonhq上以版本11(为JDK 11编译)提供,而ProGuard混淆仅适用于为JDK编译的代码,直到版本10(见https://sourceforge.net/p/proguard/feature-requests/188/)。目前还不确定ProGuard何时也支持版本11。我们应该等到它支持,或者我们有什么选择?下载并构建针对版本10的OpenJFX源代码(我不知道这是否可以开箱即用)是一个不错的选择,或者只要ProGuard不理解OpenJDK 11代码,甚至保留Oracle 10 JDK二进制文件和/或其javafx jmod文件?

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

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

    彼得,谢谢你的帮助。

  • 共有1个答案

    荆鸿畅
    2023-03-14

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

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

     类似资料:
    • 我必须定义code.Spatial类,如主键和codels.LScharacteristic codels.PlannedUsing,如外键。当我尝试migrate:ProgrammingError:ERROR:foreign key约束中指定的id列不存在时,我遇到了这个问题。 UPD完整日志:上述异常是以下异常的直接原因: 回溯(最后一次调用):文件“manage.py”,第23行,从命令行执

    • 我不确定似乎是什么问题,但这种膝盖迁移失败了。尽管我是编写迁移的新手,但我坚信此迁移文件是正确的。生成的错误如下 代码如下。最初,这些迁移函数在单独的文件中,我认为它失败了,因为文件没有同步执行,这导致我编写了一个文件。我不确定这是否有帮助,但是当我删除包含外键引用(UserRoles、RolePer的、令牌)的表的代码时,其余的似乎都在工作。

    • 我的应用程序(Postgres)中有7个不同的模式,我做了两次迁移来更改列,一次影响A模式,另一次影响公共模式。我想知道这种意外行为的原因。

    • 问题内容: 我刚刚在Xcode 7 Beta中打开了我的旧项目。该代码在Xcode 6中可以正常工作,但是现在显示出许多错误。我不知道这些是什么。有人可以解释为什么发生这种情况,以及如何解决它吗?谢谢!这是代码 问题答案: 这是带有Swift 2.0的do / try / catch实现的updateAction()函数:

    • 我对rails迁移有一个奇怪的问题。我的db/migrate文件夹包含迁移文件,所有文件都工作正常。但几分钟前,我使用rails g migration MigrationName创建了一个新文件,它生成了一个新文件。然后,当我运行rakedb:migrate时,它会回滚所有内容,我的模式版本变为0。现在,当我运行rake db:migrate时,它什么也不做,而db/migrate包含我的所有迁

    • 我正在尝试将我的应用程序从Java 8迁移到OpenJDK11。我使用了MySql connector Version5,它的工作很好。是否需要将MySql连接器JAR升级到8.0版本?我从下面的链接读到它,但他们没有提到关于Java 11。 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions-java.html