【问题标题】:Intellij IDEA 2018.2 does not recognize the JavaFX packages with JDK 10Intellij IDEA 2018.2 无法识别带有 JDK 10 的 JavaFX 包
【发布时间】:2018-09-07 14:51:23
【问题描述】:

我已搜索但未找到任何有关它的详细信息。在http://www.oracle.com/technetwork/java/javafx/downloads/index.html 它说

从 JDK 7u6 开始,JavaFX 包含在标准 JDK 和 JRE 包中

但我在编译包含javafx.* 包的代码时遇到错误。包没有建立。我正在使用 Oracle JDK 10.0.2 和 Intellij Idea 2018.2。在我将$JAVA8_HOME/jre/lib/ext/jfxrt.jar 添加为库后,代码就可以工作了。

但奇怪的是,我能够构建代码以定位字节码版本 8而无需像上面那样添加来自 JDK 8 的 jar 文件

所以问题是

如何获取最新的 JavaFX?

最新的 JavaFX 是否在 JDK 8 中?

更新

JDK 10 包含 JavaFX 并在命令行中成功编译和运行。 Intellij IDEA 2018.2 存在问题。它不识别 JavaFX 包。

Intellij 中的错误信息:

错误:(3, 26) java: 包 javafx.application 不存在

注意:在编辑器中编码时没有错误(不是红色下划线)。在 Intellij 中编译时出现错误。

更新了问题标题。

【问题讨论】:

  • 我不使用 intelliJ,但根据 this post,您的 intelliJ 设置中设置的“语言级别”可能是错误。
  • IntelliJ 确实有一系列令人困惑的设置隐藏在 Java 版本、编译器和代码语法的黑暗角落。如果使用该工具,请在 Maven 中添加该设置。然后在 Java 9、10 和 11 中逐步引入 Java 模块化,这将成为构建和运行 Java 项目的挑战。
  • @Pagbo 是的,我的问题是一样的。但是那里的解决方案不起作用。语言级别必须是 10 级还是 8 级?

标签: java intellij-idea javafx version


【解决方案1】:

JavaFX 包含在 Java 10 及之前的 Oracle JDK 中。从 Java 11 开始,它将不再包含,但可以在此处单独下载 http://jdk.java.net/openjfx/

有关如何从版本 11 开始使用 JavaFX 的其他信息也可在此处获得:http://docs.gluonhq.com/javafx11/

【讨论】:

  • 你确定吗?我没有看到在 openjdk.java.net/projects/jdk/11 中删除 JavaFX 的迹象。无论如何,“直到并包括 Java 10”并不完全准确。显然足够旧的版本没有 JavaFX。
  • @VGR 在 JDK 7u6 之前没有包含 JavaFX,因此我没有重复这一点。它也从未正式包含在 OpenJDK 中,只是为了避免在此产生任何混淆。
  • 这对我有用。我刚刚下载了这个包并将 lib 文件夹包含在 Project Structure - Libraries 中。希望它可以帮助某人
【解决方案2】:

这一步解决了问题:

Project byte code version 设置为 10 而不是 8 英寸

File > Settings > Build, Execution, Deployment > Compiler > Java Compiler

感谢您的帮助。

【讨论】:

  • 谢谢,它有效,但它实际上是做什么的?
  • IntelliJ 无法识别模块,因为它试图编译为 Java 字节码版本 8,即使项目 SDK 是 JDK 10。这可以提供与 JRE 8 运行编译程序的兼容性。但是JavaFX 包是使用从 JDK 9 开始的“Java 模块”设计的。因此,我需要告诉 IntelliJ 编译到版本 10 而不是 8。您可以在此处找到有关 Java 模块的更多信息:baeldung.com/java-9-modularity
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 2019-04-27
  • 2022-10-04
相关资源
最近更新 更多