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

Java 斯克曼!不适用于Eclipse.app或SpringToolSuite4.app(在Mac上),java,eclipse,spring-tool-suite,macos-mojave,sdkman,Java,Eclipse,Spring Tool Suite,Macos Mojave,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 分别 斯克曼!是否为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
分别

斯克曼!是否为SDKMAN安装了正确的
java
javac
默认的Java版本

因此,我有适当的
java
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
相当):

我确实得到了一个STS的启动屏幕,但它仍然报告没有安装JVM(参见屏幕截图)

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

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

有人用这个吗


谢谢

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

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

macOS似乎一直拒绝为我在
Info.plist
Eclipse.ini
中提供的
-vm
参数的几乎所有组合启动
Eclipse.app
,但指向
/System/Library/
的链接除外

以下是我的工作设置:

  • 我做了一个
    sdk默认java 11.0.2-open
    ,而不仅仅是
    sdk使用
    。 我确信斯克曼!将JDK命令二进制文件正确地符号链接到
    /System/Library
    路径:
  • 虽然符号链接目的地不再是链接,但SDKMAN使用的是二进制文件!部署在那里。用
    -版本检查它

  • 我确保
    Info.plist
    中不存在
    -vm
    参数。所有的评论都被删掉了

  • eclipse.ini
    中的My
    -vm
    arg是:

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

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


    祝你好运。

    以下是我如何在MacOS Catalina上使用[1]的方法。
    我必须在我的
    eclipse.ini
    中将
    -vm
    路径设置为:

    /Users/<YOUR_USER>/.sdkman/candidates/java/current/lib/jli/libjli.dylib
    
    /Users//.sdkman/candidates/java/current/lib/jli/libjli.dylib
    
    显然,MacOS上的Eclipse总是使用JNI调用来加载VM[2],所以我必须让它指向
    libjli.dylib
    ,而不是常规的java可执行文件

    链接:
    [1] 感谢:

    [2]

    我重新编辑了问题@Kris。不幸的是,这不起作用:(仍然是同一个问题!好吧,很抱歉,这不起作用,这听起来不像是一个典型的“找不到JVM来运行Ecipse”,我不确定如何解决它:-(“这些行是文件中的第一行”-这对我来说是关键点你说什么“我确保SDKMAN!将JDK命令二进制文件正确链接到/System/Library路径”?您是否手动创建了符号链接?嗨@nevenc,您找到解决方案了吗?我也遇到了同样的问题。似乎到目前为止没有其他选择。为了运行Spring工具套件4(v4.4.0),您需要安装“传统”java,在我的案例中,我从Oracle安装了java 11(不得不从java 13降级,因为Gradle还没有准备好使用java 13运行)。一旦安装了java 11,STS将毫无问题地运行(您可以在安装详细信息中检查vm配置)。在这一点上,这就是SDKMAN出现的地方。您可以将您的项目指向SDKMAN安装的任何供应商版本。干杯。嘿@jumping_monkey不幸的是,这正是我所做的。安装了一个较旧的标准JDK,然后在STS(eclipse)中更新了特定的运行时project.Hey@nevenc,谢谢你的回复。所以,这是Spring工具套件的“安装问题”,我希望他们会“修复”"总有一天。无论如何,我们有解决办法。干杯,兄弟。下载Oracles JDK是没有必要的,我不想登录并批准他们的许可协议。你可以从下载OpenJDK,它将安装到
    /Library/Java/JavaVirtualMachine
    。然后STS会很好地开始,SDKMAN可以用于其他一切。必须将其设置为e> /Users//.sdkman/candidates/java/current/lib/jli/libjli.dylib
    但它能工作!它能工作。我的安装程序是macOS Catalina 10.15.6和Eclipse内存分析器版本1.10.0。但对于openjdkb 14.0.2,libjli.dylib现在位于lib库下(不是lib/jli)~/.sdkman/candidates/java/current/lib/libjli.dylib在我的macOS Catalina 10.15.7上为JDK 11.0.2工作。谢谢
    lrwxr-xr-x  1 root  wheel  75  1 Mai  2017 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
    
    -vm
    /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
    
    /Users/<YOUR_USER>/.sdkman/candidates/java/current/lib/jli/libjli.dylib