【问题标题】:Why does JavaFX not work under OpenJDK 17 from Homebrew?为什么 JavaFX 在 Homebrew 的 OpenJDK 17 下不起作用?
【发布时间】:2021-12-26 03:11:40
【问题描述】:

在安装了OpenJDKTemurin 容器后(先测试一个,然后测试另一个),我在从终端运行一个简单的示例 javafx 应用程序时仍然遇到类似的错误:

Example.java:1: error: package javafx.application does not exist

在我看来,JavaFX 不包含在适用于 macOS 的 OpenJDK 中,至少 Homebrew 版本不包含,但它应该包含。

我安装的版本是 17,在这两个方面。

我能做些什么来解决这个问题? (我特别不想安装 Oracle 的 JDK,以避免高额的未来许可费用或潜在的诉讼,这是 Oracle 众所周知的。)

【问题讨论】:

  • JavaFX 自 Java 9 起不包含在 JDK 中(Azul JDK 和 IIRC 除外)。您需要自己在类路径中包含 JavaFX。
  • 引用了一个完整的命令行示例here
  • @MarkRotteveel 小说明:JavaFX 应该在模块路径上,而不是类路径上,目前可以从类路径中运行,并且可以,但是it isn't supported that way
  • @jewelsea 谢谢,我不知道(我自己并没有真正使用过 JavaFX)。

标签: java javafx homebrew homebrew-cask adoptopenjdk


【解决方案1】:

JavaFX 从未成为 Java 平台的官方部分。

有一段时间,Oracle 将 JavaFX 库与他们自己的 Oracle JDK 产品捆绑在一起,但后来停止了。这些库是额外的,Java 规范不要求的。

请记住,有几个供应商提供 Java 实现。如果您想要的话,其中至少有两个提供了一个包含实现 JavaFX 的 OpenJFX 库的变体:

  • ZuluFX 由 Azul Systems 提供
  • LibericaFX 来自 BellSoft

我上次查看时,这两种产品都适用于英特尔 Mac 和 Apple Silicon Mac 上的 macOS。

或者,您可以将 OpenJFX 库捆绑到您的应用中。

【讨论】:

  • 啊,好的,谢谢你告诉我。我在某处读到 JavaFX 回到了 JDK 中,但没有明白它们只意味着 Oracle JDK。无论如何,我现在通过 Gradle 包含它并且它可以工作! :)
猜你喜欢
  • 1970-01-01
  • 2016-11-18
  • 2023-01-05
  • 1970-01-01
  • 2016-03-18
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多