由于新的文件夹结构,在Linux上的Intellij IDEA中正确设置Java 9作为SDK

在你写下我之前,请考虑这些都不是我的问题的答案:

  • 如何在IntelliJ IDEA中设置SDK?
  • 如何更改IntelliJ IDEA默认JDK?

在IntelliJ IDEA 2017.2.6中,尝试将JDK9作为SDK添加但不起作用,因为类路径最终为空。 重现步骤:

  1. 打开“添加新SDK对话框”
    (转到项目设置>项目>项目SDK>新建> JDK)
  2. 选择JDK 9
    选择jdk对话框
  3. 通过,但如果您在SDK下查看> JDK9类路径为空,并且由于找不到基类而导致代码错误。 看图:
    没有类路径

在IntelliJ IDEA 2017.3 EAP中,您收到有关未找到JDK类的错误。 见下图:

  1. 打开“添加新SDK对话框”
    (转到项目设置>项目>项目SDK>新建> JDK)
  2. 选择JDK 9
    选择jdk对话框
  3. 应该通过,但会产生错误弹出窗口
    jdk错误弹出窗口

使用jdk9的HelloWorld示例的命令行编译按预期工作。

编辑:发现几乎重复: Intellij IDEA 2017.2无法在Linux Mint 18上添加openjk 9 。 主要差异:

  • Linux版本:他们使用Mint 18,我正在使用Debian Stretch。
  • OpenJDK是写作时回购的最新版本:9~b181-4~bpo9 + 1。 虽然版本相同,但在我的情况下它仍然不起作用。

编辑:另一个可能的重复: intellij想法没有看到Java 9标准类

我不明白这些评论的答案。 尝试为JDK(9和1.9)设置不同的名称,但它仍然没有显示模块而不是类路径,类路径仍为空。

目前的debian二进制包openjdk-9-jre-headless 9~b181-4包含错误编译的lib / jrt-fs.jar文件。
对于youtrack和ubuntu启动板都有2个问题。

正如这里所示 :

可能的原因:
lib / jrt-fs.jar中的类由Java 9编译,选项为“-source 8”/“target 8”。 它们应该用“–release 8”选项编译(或者用Java 8编译)

临时解决方法可能是用Oracle JDK替换/usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar
您也可以尝试使用建议选项“ –release 8 ”重新编译openjdk-9源代码。

无论如何,我建议在上面的链接上对这个问题进行投票,以吸引开发团队的更多关注。

现在使用Oracle Java而不是OpenJDK。 您可以通过WebUpd8的存储库获取它 。

sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java9-installer 

它看起来不适用于OpenJDK,所以如果你想使用最新最好的Java,这将是现在的方法。 否则,从我所看到的,你已经正确地做到了这一点,一旦实际修复,它将正常工作。