有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

在你写信给我之前,请考虑这两个问题都不是我的问题的答案:


在IntelliJ IDEA 2017.2.6中,试图在SDK通过时添加JDK9,但由于类路径最终为空而无法工作。复制的步骤:

  1. 打开“添加新SDK对话框”
    (转到项目设置>;项目>;项目SDK>;新建>;JDK)
  2. 选择JDK 9
    select jdk dialog
  3. 通过,但如果您查看SDK>;JDK9类路径为空,由于找不到基类,代码错误将被清除。参见图片:
    no classpaths

在IntelliJ IDEA 2017.3 EAP中,您会发现一个关于找不到JDK类的错误。见下图:

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

使用jdk9对HelloWorld示例进行的命令行编译工作正常

编辑:找到一个几乎重复的:Intellij IDEA 2017.2 can't add openjk 9 on Linux Mint 18关键差异:

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

编辑:另一个可能的副本:intellij idea does not see java 9 standard classes

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


共 (1) 个答案

  1. # 1 楼答案

    当前的debian二进制软件包openjdk-9-jre-headless 9~b181-4包含错误编译的lib/jrt-fs。jar文件
    idea youtrackubuntu launchpad上分别有两个提交的问题

    如图所示here

    Probable reason:
    Classes in lib/jrt-fs.jar were compiled by Java 9 with options "-source 8"/"target 8". They should be compiled with " release 8" option instead (or by Java 8)

    一个临时解决方案可能会取代/usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs。jar与Oracle JDK中的一个
    您还可以尝试使用建议的选项“release8”重新编译openjdk-9源代码

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