0

我即将开始一个使用 Scala 和 JavaFX/OpenJFX 的新 GUI 项目。

上次我参与时,Java 8 是最先进的,JavaFX 与 JDK 和 JRE 集成,Scala 使用 JDK 8 进行构建,Jigsaw 不存在,Oracle 几乎永远提供(免费)(错误)修复。

现在,几年后,情况发生了相当大的变化:Java 11+ 是我们应该使用的,JavaFX 已经解绑,它的开发继续作为 OpenJFX(或多或少)独立于 Java,Jigsaw 在那里,Oracle 力量用户每 6 个月升级一次环境。

如果不是因为 Scala 似乎仍然在 JDK 8 上运行,OpenJDK 构建不包含 JavaFX,并且 AFAIR,OpenJFX 不适用于 Java 11 之前的 Java 版本,那么这种变化不会太糟糕。

所有这一切都让我想到了一个问题:使用 JavaFX/OpenJFX 作为 GUI 工具包来实现 Scala 应用程序会使用什么工具堆栈?

将Scala与JDK(不是JRE!)11+一起使用是否安全?

4

1 回答 1

1

Oracle 强制用户每 6 个月升级一次他们的环境。

评论中所述,这是不正确的。您仍然可以使用 JDK 8。如果您想要 Oracle LTS,请使用 Java 11。还有其他公司将 LTS 提供给其他 OpenJDK 版本(RedHat JDK、Azure JDK ......)。Mark Reinhold(首席 Java 架构师)在他的演讲中多次解释了这一点(1、2他在过去2年中每年重复 3 次的任何演讲)。

使用 JavaFX/OpenJFX 作为 GUI 工具包来实现 Scala 应用程序会使用什么工具栈?

我不是 Scala 开发人员,但可以使用Scala 允许的任何最新 OpenJDK 构建版本,并且取决于您是否需要支持以及支持哪个 OpenJDK 版本。我敢打赌 OpenJDK 11 将满足您的所有需求。

JavaFX 已从 Oracle JDK 中删除,但从未捆绑在 OpenJDK JDK 1中。使用 OpenJDK 时,您可以轻松地将 OpenJFX 2捆绑为依赖项,作为外部 JAR 或通过依赖项管理器(Gradle、Maven...)。JavaFX/OpenJFX 网站是https://openjfx.io并包含有关如何操作的说明。

JavaFX/OpenJFX 版本与 JDK 并行(或多或少)发布,并支持 OpenJDK 的 1 个版本(OpenJFX N 支持 JDK N-1 和 JDK N,可能还有JDK N-2...)。因此,如果您使用 OpenJDK 11,则可以使用 OpenJFX 11 或 12。OpenJFX 13+可以工作,但不能保证。

将Scala与JDK(不是JRE!)11+一起使用是否安全?

如果您的 Scala 版本支持,OpenJDK 11+ 和 OpenJFX 11+ 是安全的。请注意,JRE 已从 JDK 中删除,因此无关紧要。

1 OpenJDK JDK是正确的引用方式,就像Oracle JDK一样,但大多数人只是使用 OpenJDK。

2 OpenJFX对于JavaFX就像OpenJDK JDK对于Oracle JDK一样,但是OpenJFXJavaFX可以互换使用,因为没有真正的区别。

于 2019-05-21T18:38:28.400 回答