使用Java 9和Intellij Idea

时间:2017-11-19 12:06:03

标签: java maven intellij-idea javafx javafx-9

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

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

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

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

有什么建议吗?

6 个答案:

答案 0 :(得分:11)

尝试将项目语言级别设置为" 9"在"项目结构|项目"

答案 1 :(得分:10)

好的,我知道我的问题是什么。

除了上面提到的<div data-snack-id="SkcBrXsMG" data-snack-platform="android" data-snack-preview="true" data-snack-theme="dark" style="overflow:hidden;background:#212733;border:1px solid rgba(0,0,0,.16);border-radius:4px;height:505px;width:100%"></div> <script async src="https://snack.expo.io/embed.js"></script>之外,我在某些pom.xml中有一个maven设置,如下所示:

Try to set project language level to "9" in "Project Structure | Project"

<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

答案 2 :(得分:5)

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

在IntelliJ和Maven pom中检查项目和模块的通常语言级别设置后,我发现问题是模块被显式设置为在Java Compiler首选项中生成Java 8字节码。

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

答案 3 :(得分:0)

File --> Project Structure-->Module

此处的语言级别为我设置为5。将它上升到9以允许类等,并且上面描述的相同错误为我解决了。

答案 4 :(得分:0)

我错过了gradle.build中的模块。必须更新

val record = ListBuffer[String]
val record += (elm1,elm2,elm3) - I am getting elm1 by reading through xpath

答案 5 :(得分:0)

在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>

我可以使用所需的libray包括TextField。

import javafx.scene.control.TextField;