Eclipse 找不到用 sdkman 安装的 jdk

Eclipse can't find jdk installed with sdkman

我是 sdkman 的新手,但我设法安装了它并用它安装了一些软件:JDK、Gradle 和其他一些软件。问题是,在我下载 Eclipse 并尝试 运行 之后,它就是找不到 JDK。我已经导出 JAVA_HOME 和 PATH。事实上,我实际上可以从终端 运行 java、javac 和其他 Java 命令,我什至尝试使用更新选项。我更改了 eclipse 文件夹的所有权但没有结果,Eclipse 找不到 JDK.

我必须安装 java 和 apt-get 才能使 eclipse 工作,但是使用 sdkman 有什么用呢?所以我的问题是:我缺少什么配置才能让 Eclipse 使用 sdkman java 安装。

我遇到了同样的问题,并通过在 /usr/bin 中为 java 和 javac 创建一个符号 link 来解决它。

sudo ln -s ~/.sdkman/candidates/java/current/bin/javac /usr/bin/javac
sudo ln -s ~/.sdkman/candidates/java/current/bin/java /usr/bin/java

我通过

得到了这些位置
which javac
which java

找到并编辑您的 eclipse.ini 文件并将“-vm”之后的行更改为:

/home/YOURUSER/.sdkman/candidates/java/current/bin

Linux 系统应该这样做。不过我不确定 Windows 或 Mac。

macOS

对于 macOS,您需要将 -vm 参数设置(或添加)到您的 /Applications/Eclipse.app/Contents/Eclipse/eclipse.ini,例如:

-vm
/Users/<YOUR_USER>/.sdkman/candidates/java/8.0.272.hs-adpt/jre/lib/jli/libjli.dylib

这现在包含在 eclipse.ini 文档中(有些不明显):https://wiki.eclipse.org/Eclipse.ini#Using_a_JDK_without_macOS_directory_layout

NOTE: Beware that if you use current instead of using a specific JDK version identifier it will use the default if you launch the Eclipse.app using the UI (double-click or using Spotlight). If you launch it from a terminal it will use the one currently selected.