Eclipse 找不到使用 sdkman 安装的 jdk

Posted

技术标签:

【中文标题】Eclipse 找不到使用 sdkman 安装的 jdk【英文标题】:Eclipse can't find jdk installed with sdkman 【发布时间】:2018-06-23 05:05:40 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并通过在 /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

【讨论】:

没有更好的解决方案吗? 我在 macos-mojave 上仍然面临同样的问题 - 我为它发布了一个新问题 - ***.com/questions/56686052/… 当我以超级用户身份执行上面的命令时,它显示“不允许操作” $JAVA_HOME 仍然指向旧版本(安装了 update-alternatives),尽管 javajavac 指向 SDKMAN!现在的候选人。我该怎么做才能让 $JAVA_HOME 指向我的 SDKMAN!候选人?【参考方案2】:

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

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

这应该适用于 Linux 系统。我不确定是 Windows 还是 Mac。

【讨论】:

非常感谢!注意我的路径是:/Users/YOURUSER/.sdkman/candidates/java/current/bin【参考方案3】:

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

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

【讨论】:

以上是关于Eclipse 找不到使用 sdkman 安装的 jdk的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中使用@slf4j报log找不到

eclipse找不到Pivotal tc server的安装目录

在 Eclipse 的 Crashlytics 安装中找不到存储库

Android开发环境搭建--完美解决eclipse安装Genymotion插件找不到图标问题

sdkman 在哪里安装软件包?

现在在学GUI界面,可是在eclipse里面找不到那个啥GUI,请问要下载啥插件?