Eclipse找不到使用sdkman安装的jdk。

20

我对sdkman还不熟悉,但我成功安装并使用它安装了一些软件:JDK,Gradle和其他一些软件。问题是,当我下载Eclipse并尝试运行它时,它根本找不到JDK。我已经导出了JAVA_HOME和PATH。事实上,我甚至可以从终端运行java、javac和其他Java命令,我甚至尝试了update-alternatives。我已经更改了eclipse文件夹的所有权,但没有结果,Eclipse无法找到JDK。

我不得不使用apt-get安装Java才能让Eclipse工作,但使用sdkman的意义何在?所以我的问题是:我缺少哪些配置来使Eclipse使用sdkman的Java安装。

3个回答

29

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

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

3
有没有更好的解决方案? - Arquillian
我在macOS-Mojave上仍然遇到同样的问题 - 我为此发布了一个新问题 - https://dev59.com/nlMI5IYBdhLWcg3wPpAa - nevenc
4
当我以超级用户身份执行上述命令时,它会显示“操作不允许”。 - hunterino
$JAVA_HOME仍然指向旧版本(使用update-alternatives安装),尽管javajavac现在指向SDKMAN!候选人。我该怎么做才能让$JAVA_HOME指向我的SDKMAN!候选人? - philburns
这个解决方案对我在使用dbeaversdkman时有效。我添加了这个评论,因为我不知道在给定的解决方案中应该添加绝对路径 - https://askubuntu.com/questions/1014157/dbeaver-with-sdkman-jre-jdk-location。所以我只是用这个临时的解决方案来工作。 - Visrut

4

定位并编辑您的eclipse.ini文件,将"-vm"后面的一行更改为:

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

这应该足以适用于Linux系统。但我不确定Windows或Mac是否适用。


非常感谢!对我来说,路径是:/Users/YOURUSER/.sdkman/candidates/java/current/bin。 - Olivier Royo

0

macOS

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

-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

注意:请注意,如果使用current而不是具体的JDK版本标识符,则在使用UI(双击或使用Spotlight)启动Eclipse.app时将使用默认值。如果从终端启动,则将使用当前选择的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接