5

我在Linux Mint 18.2上使用Intellij IDEA 2017.2.5并尝试添加新的 openjdk-9 SDK,但 IDEA 不接受 openjdk 9 作为有效的 JDK:

Intellij 关于 SDK 主页的声明

我已经使用 ppa 标准存储库中的 apt-get 安装了我的所有 SDK。
这是我的update-alternatives --config java/javac输出:

更新替代品 --config java/javac

虽然 Intellij在这里声明它将支持JDK 9 ,但似乎它至少还不能完全兼容 opensdk-9。 也许重构 SDK 目录并删除“ jre ”文件夹会误导 IDEA 找到 SDK 9 主文件夹。

知道 Intellij IDEA 为何声称“所选目录不是 JDK 的有效主目录”吗?

4

1 回答 1

1

“用于 OpenJDK 的 Ubuntu PPA”</a> 目前具有非常旧的 openjdk-9 ( 9~b115-1ubuntu1 ) 版本。
所以 IDEA 不承认它是一个有效的 SDK。
我删除了当前安装的版本:

sudo apt-get remove '^openjdk-9.*'

然后我从launchpad build archive下载了更新的 .deb build(9~b181) 文件,包括 jre,jre-headless, ...。

sudo dpkg -i openjdk-9-jre-headless_9_b181-4_amd64.deb  
             openjdk-9-jre_9_b181-4_amd64.deb 
             openjdk-9-jdk-headless_9_b181-4_amd64.deb 
             openjdk-9-jdk_9_b181-4_amd64.deb

只需在一行中执行上述命令,换行符是为了更好的可读性。

忽略任何抱怨的错误:

“未安装软件包 libpng16-16。”

接下来执行以下命令:

  sudo apt-get install -f

现在,在安装了这个 openjdk-9 版本后,IDEA 对 SDK 主页感到满意。

感谢@y.bedrov的有用评论。

更新: 但是,此解决方案使您能够在提到的 IDEA 版本(2017-2)中声明 openjdk-9,但您无法在 IDEA 本身中编译任何类。您只能使用旧 jdk 编译您​​的应用程序并使用 openjdk-9 运行它。还有一个问题在这里表明了这一点。

在较新的 IDEA 版本(我已经测试过 2017.3)中,此版本的 openjdk 不再被允许用作新的 SDK,请参阅此问题

简短的原因是 Debian 软件包中包含错误编译的 lib/jrt-fs.jar 文件的问题。

有关更多信息,请参阅此答案

于 2017-10-06T08:49:45.940 回答