JavaFX在Java 9和Intellij Idea中不存在



我正在使用Intellij Idea编译一个使用Maven依赖项的项目,Intellij一直告诉我我的项目有50个错误,因为JavaFX不存在。

Intellij并没有将代码中的所有javafx依赖项突出显示为错误,只是一旦我按下运行并编译程序,就会说JavaFX中的所有内容都不存在。

我试图重新下载最新的JDK(Java 9.0.1(,但没有修复它。我进入了默认项目结构和项目结构,以确保它使用的是正确的 jdk,但这并没有解决问题。我使用的所有 jdk 似乎都列出了项目中包含的 javafx 包。

这也只是我与朋友一起处理的特定项目的问题。我们可能不得不将所有代码移动到一个新项目中,但我不确定这是否会解决任何问题。

有什么建议吗?

尝试在"项目结构 |Project">

好的,

我知道我的问题是什么了。

除了上面提到的Try to set project language level to "9" in "Project Structure | Project"之外,我还在一些pom中设置了一个maven设置.xml看起来像这样:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
    </configuration>
</plugin>

java.version被定义为1.8上面的某个地方。我只需要将其更改为9

在将 JavaFX 项目从 Java 8 升级到 Java 9 后,我遇到了这个问题。

在检查了 IntelliJ 和 Maven pom 中项目和模块的常用语言级别设置后,我发现问题是该模块在 Java 编译器首选项中明确设置为生成 Java 8 字节码。

Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler.检查Project bytecode version是否未设置(或设置正确(,以及您的模块是否未在Per-module bytecode version中以不正确的值列出。

File --> Project Structure-->Module

这里的语言水平对我来说设置为 5。将其增加到 9 以允许类等,并且为我解决了上述相同的错误。

我错过了gradle.build中的模块。不得不更新

javafx {
  version = "11"
  modules = [ 'javafx.controls', 'javafx.fxml' ]
}
<</div> div class="one_answers">

在Java9+中,某些模块不包含在JRE/JDK中。解决方案是显式添加 thore 库。

对于我使用的Java9的maven pom文件

<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls -->
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>11</version>
</dependency>

比我可以使用所需的库来包含文本字段。

import javafx.scene.control.TextField;

最新更新