This is a similar issue to: Eclipse can't find jdk installed with sdkman
I am still facing the issue on Mac (macos-mojave
)
Both of my
/usr/bin/java
/usr/bin/javac
are pointing to
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
respectively.
SDKMAN! does install the proper java
and javac
for the SDKMAN!'s default Java version.
Thus, I do have proper java
and 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
However, I do not have any Java versions installed in:
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 ..
EDIT:
I also tried updating the JVM reference in /Applications/SpringToolSuite4.app/Contents/Eclipse/SpringToolSuite4.ini
(comparable to 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
I do get a splash screen for STS, but it still reports no JVMs installed (see screenshots)
And it seems both Eclipse.app
and SpringToolSuite4.app
require proper JDK installed traditionally, not using SDKMAN!
I really don't want to install another JDK besides SDKMAN!
Anyone got this to work?
Thanks!
I faced this problem on macOS Sierra while trying to use OpenJDK 11.0.2 installed by SDKMAN! in conjunction with Eclipse 2019-06. No other SDKs installed.
macOS consistently seems to refuse launching
Eclipse.app
for almost all combinations of-vm
parameters I supplied inInfo.plist
andeclipse.ini
, except for links to/System/Library/
.Here is my working setup:
sdk default java 11.0.2-open
rather than justsdk use
. I made sure SDKMAN! symlinked JDK command binaries properly into the/System/Library
path:Although the symlink destination is not a link anymore, it is the binary that SDKMAN! deployed there. Check it with the
-version
.I made sure no
<string>-vm</string>
parameter is present inInfo.plist
. All commented out.My
-vm
arg ineclipse.ini
is:As stated previously, make sure this statement appears before
-vmargs
.This finally allows me to launch a recent Eclipse by double-clicking in the Finder or launching the
eclipse
binary directly. Hope this applies to STS as well.Good luck.
Here is how I got it working [1] on MacOS Catalina.
I had to set the
-vm
path in myeclipse.ini
to:Apparently Eclipse on MacOS always uses JNI invocation to load the VM [2] so I had to make it point to the
libjli.dylib
instead of the regular java executable.Links:
[1] Thanks to: 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
If the Eclipse launcher cannot find a suitable JVM to run on (which I am assuming is the problem here), you can usually work around this by pointing the 'eclipse.ini' (or 'STS.ini' as the case may be) to the JVM of your choice.
To do this, open the
.ini
file in a text editor and add two lines at the front of the file. Something like this:Note it is important that:
1) these lines are the very first in the file
2) they are on two separate lines (don't try to put both
-vm
and path of the jvm executable on a single line, it doesn't work).