斯德曼!不适用于 Eclipse.app 或 SpringToolSuite4.app(在 Mac 上)

这是一个类似的问题:Eclipse找不到安装了sdkman的jdk。

我仍然在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

分别。

斯德曼!确实安装了正确的和SDKMAN!的缺省 Java 版本。javajavac

因此,我确实有适当的和:javajavac

% 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 ..

编辑:

我还尝试在中更新JVM引用(与以下情况相当):/Applications/SpringToolSuite4.app/Contents/Eclipse/SpringToolSuite4.iniEclipse.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 splash screen Java SE 6 runtime legacy needed

而且似乎两者都需要在传统上安装适当的JDK,而不是使用SDKMAN!Eclipse.appSpringToolSuite4.app

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

有人让它工作吗?

谢谢!


答案 1

以下是我如何让它在MacOS Catalina上工作[1]。
我必须在我的路径中设置路径:-vmeclipse.ini

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

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

链接:
[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


答案 2

如果 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)它们在两行上(不要试图将jvm可执行文件的两个和路径放在一行上,它不起作用)。-vm


推荐