在 intellij idea 中找不到“jdk 的有效主目录”

在 intellij idea 中找不到“jdk 的有效主目录”

我正在尝试为 intellij idea 设置一个 SDK,但正如错误所指出的那样,我找不到 jdk 的主页。

在终端中我得到了以下信息

$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

我试着跑

$ whereis java

并且所有路径均无效

然后我发现 usr/lib/jvm 中的 jvm 文件夹也不起作用。

这是输出

$ ls -lh /usr/lib/jvm/

在此处输入图片描述

我刚刚运行了另一个命令

$ update-alternatives --list java

输出为

/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-9-openjdk-amd64/bin/java

在 idea 中,sdk 选择器只会转到 /bin,但内部文件不会出现,并且在文件资源管理器中我可以看到 java 文件,但单击它没有任何反应,我也不能直接复制它的路径,因为我收到错误:

“找不到指定的路径”

还跑了

$ sudo update-alternatives --display java

输出

java - auto mode
link best version is /usr/lib/jvm/java-9-openjdk-amd64/bin/java
link currently points to /usr/lib/jvm/java-9-openjdk-amd64/bin/java
link java is /usr/bin/java
slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
/usr/lib/jvm/java-9-openjdk-amd64/bin/java - priority 1091
slave java.1.gz: /usr/lib/jvm/java-9-openjdk-amd64/man/man1/java.1.gz

答案1

您需要将其添加JAVA_HOME到您的.bashrc文件中。

  1. 編輯:

    gedit ~/.bashrc
    
  2. 添加以下行:

    ## JAVA_HOME
    export JAVA_HOME="/usr/lib/jvm/java-9-openjdk-amd64"
    export PATH=$PATH:$JAVA_HOME/bin
    
  3. 使用以下命令将其添加到/etc/environemnt文件中:

    echo "JAVA_HOME=\"/usr/lib/jvm/java-9-openjdk-amd64\"" | sudo tee -a /etc/environment
    
  4. 关闭并打开一个新的终端。

  5. 如果一切都不起作用那么:

    1. 启动 Intellij

    2. 按:ctrl+++altshiftS

      • 前往Platform Settings -> SDKs
      • 单击添加路径java sdk

      在此处输入图片描述

现在您的 IntelliJ 应该能够看到它。

答案2

我遇到了同样的错误,因为我更改了 jdk,而我的 Intellij 仍然引用我以前的 jdk 的位置。我所做的就是转到File -> Project Structure。转到SDKs项目结构对话框中的平台设置下。之后,只需导航到安装 jdk 主目录的位置。(对我来说,它是/usr/local/jdk1.8.0_271)。然后只需执行ApplyOk这个错误应该会消失。

答案3

我遇到了同样的错误,因为我更改了下载文件夹(目录)。我解决了这个问题,转到“文件 -> 项目结构”和“项目设置 -> 项目”,SDK:“下载文件夹 -> jbr”。这就是我所做的一切。

相关内容