【问题标题】:Eclipse can't find jdk installed with sdkmanEclipse 找不到使用 sdkman 安装的 jdk
【发布时间】: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 安装,我缺少什么配置。

【问题讨论】:

    标签: eclipse java-home sdkman


    【解决方案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,它将使用默认值)。如果您从终端启动它,它将使用当前选择的终端。

    【讨论】: