Java 斯克曼!不适用于Eclipse.app或SpringToolSuite4.app(在Mac上)
这与以下问题类似: 我仍然面临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安装了正
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
路径:-版本检查它
我确保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