我正在使用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;