16

这是一个类似的问题: Eclipse can't find jdk installed with sdkman

我仍然面临 Mac 上的问题 ( macos-mojave)

我的两个

/usr/bin/java
/usr/bin/javac 

指向

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac

分别。

开发者!确实安装了正确javajavacSDKMAN! 的默认 Java 版本。

因此,我确实有适当的javaand javac

% java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)

% javac -version
javac 11.0.3

但是,我没有安装任何 Java 版本:

ls -la /Library/Java/JavaVirtualMachines 
total 0
drwxr-xr-x  2 root  wheel   64 Jun 19 10:06 .
drwxr-xr-x  4 root  wheel  128 Apr 16 06:16 ..

编辑:

/Applications/SpringToolSuite4.app/Contents/Eclipse/SpringToolSuite4.ini我还尝试在(类似于)中更新 JVM 参考Eclipse.ini

-vm
/Users/johndoe/.sdkman/candidates/java/current/bin/java
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.300.v20190213-1655.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.1000.v20190125-2016
-product
org.springframework.boot.ide.branding.sts4
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xdock:icon=../Resources/sts4.icns

我确实得到了 STS 的启动画面,但它仍然报告没有安装 JVM(见截图)

SpringToolSuite 启动画面 需要 Java SE 6 运行时遗留

而且似乎两者都Eclipse.app需要SpringToolSuite4.app传统上安装正确的JDK,而不是使用SDKMAN!

我真的不想安装除 SDKMAN 之外的另一个 JDK!

有人让这个工作吗?

谢谢!

4

3 回答 3

7

以下是我如何在 MacOS Catalina 上运行 [1]。
我必须在我的 to 中设置-vm路径eclipse.ini

/Users/<YOUR_USER>/.sdkman/candidates/java/current/lib/jli/libjli.dylib

显然 MacOS 上的 Eclipse 总是使用 JNI 调用来加载 VM [2],所以我必须让它指向libjli.dylib而不是常规的 java 可执行文件。

链接:
[1] 感谢:https
://bugs.eclipse.org/bugs/show_bug.cgi?id=549813 [2] https://help.eclipse.org/2020-03/index.jsp?topic= %2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Flauncher.html&cp%3D2_1_5_1

于 2020-05-12T11:29:14.663 回答
5

如果 Eclipse 启动器找不到合适的 JVM 来运行(我假设这是这里的问题),您通常可以通过指向“eclipse.ini”(或“STS.ini”,视情况而定)来解决这个问题到您选择的 JVM。

为此,请.ini在文本编辑器中打开文件并在文件前面添加两行。像这样的东西:

-vm
/usr/lib/jvm/jdk-1.8.0/bin/java
... the rest of the file unchanged...

请注意,重要的是:

1)这些行是文件中的第一行

2)它们在两个单独的行上(不要尝试将-vmjvm 可执行文件的路径和路径放在一行上,它不起作用)。

于 2019-06-21T16:18:20.040 回答
0

在尝试使用 SDKMAN 安装的 OpenJDK 11.0.2 时,我在 macOS Sierra 上遇到了这个问题!结合 Eclipse 2019-06。未安装其他 SDK。

macOS 似乎一直拒绝启动我在和中提供Eclipse.app几乎所有参数组合,除了指向.-vmInfo.plisteclipse.ini/System/Library/

这是我的工作设置:

  1. 我做了一个sdk default java 11.0.2-open而不只是sdk use. 我确定了 SDKMAN!将 JDK 命令二进制文件正确符号链接到/System/Library路径中:
lrwxr-xr-x  1 root  wheel  75  1 Mai  2017 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

尽管符号链接目标不再是链接,但它是 SDKMAN 的二进制文件!部署在那里。用-version.

  1. 我确保<string>-vm</string>. Info.plist都注释掉了。

  2. 我的-vm参数eclipse.ini是:

-vm
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

如前所述,确保此语句出现在-vmargs.

这最终允许我通过双击 Finder 或eclipse直接启动二进制文件来启动最近的 Eclipse。希望这也适用于 STS。

祝你好运。

于 2019-08-09T08:35:45.230 回答