来自 JDK 1.8.0_161 的 Java Mission Control 在 Mac OS X 上启动时冻结

2022-09-01 12:30:23

我正在尝试在Mac OS X High Sierra(10.13.2,带有2018年1月的补充更新)上启动JDK 1.8.0_161中提供的Java任务控制,并且JMC应用程序被冻结,即我无法在JVM浏览器面板中浏览。

由于我安装了其他以前的JDK,因此我已成功检查了JMC的以下版本:

  • 1.8.0_121
  • 1.8.0_144
  • 1.8.0_151

所以这个问题非常特定于JDK 1.8.0_161。

(要查看您的 JDK,请运行以下命令/usr/libexec/java_home -V)

(运行前JMC,即/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/jmc)

作为侧面验证,我已经在Windows 10上运行了JDK 1.8.0_161的JMC,并取得了成功。

那么您是否遇到过相同的问题?

是否有一些设置可以调整以使其正常工作?(例如,这会是与Mac OS X网守有关的问题吗!?)

以及如何正确地向甲骨文报告...我搜索了他们的错误数据库但没有成功,当我尝试提交错误时,我无法确定哪个是正确的子类别(c.f. https://bugreport.java.com/submit_intro.do),因为JMC未列在工具部分中...任何建议!?


答案 1

正如@jwatkins在评论中提到的,有一个解决方法。

  1. 从这里下载 swt 可可罐。
  2. 转到JDKs jmc路径(您可以通过右键单击停靠栏中的jmc图标找到此路径->选项->在Finder中显示,然后右键单击App->显示包内容)。

    • 例如:cd /Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home/lib/missioncontrol
  3. 备份现有罐子使用sudo mv plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar ../

  4. 复制下载的 zip 的 swt.jar 使用sudo cp ~/Downloads/swt.jar plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar
  5. 重新启动jmc

注意:记住!新复制的jar文件的名称应与旧文件名完全相同(它使用OSGi bundles.info 来加载jar)


答案 2

不幸的是,这是我们最近发现的一个错误,这是由于旧的Eclipse/SWT版本与JDK 8u152(从JDK 9向后移植)中完成的新修复之间的不兼容性引起的。

解决方法是运行较旧版本的 JDK 8 或最新版本的 JDK 7(包括相同版本的 JMC)。JDK 9也可以工作,包括新的JMC 6。

(甲骨文内部)错误参考:JMC-5139