我在Linux Mint 18.2上使用Intellij IDEA 2017.2.5并尝试添加新的openjdk-9 SDK,但IDEA不接受openjdk 9作为有效的JDK:
我已经使用ppa标准存储库中的apt-get安装了所有SDK。
这是我的update-alternatives --config java/javac
输出:
尽管Intellij宣称它将支持JDK 9 here,但它似乎尚未与至少opensdk-9完全兼容。 也许重构SDK目录并删除'jre'文件夹会误导IDEA找到SDK 9主文件夹。
知道为什么Intellij IDEA声称'所选目录不是JDK的有效主页'吗?
“ Ubuntu PPA for OpenJDK”目前拥有非常古老的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 home很满意。
感谢@y.bedrov的有用评论。
更新:但是,此解决方案使您能够在提到的IDEA版本(2017-2)中声明openjdk-9,但您无法在IDEA内部编译任何类。您只能使用elder jdk编译应用程序并使用openjdk-9运行它。还有一个问题表明这个here。
在较新的IDEA版本(我已经测试过2017.3)中,不再允许将这个openjdk版本用作新的SDK,请参阅this issue。
简短的原因是Debian包中存在一个问题,其中包含错误编译的lib / jrt-fs.jar文件。