【问题标题】:Java Mission Control from JDK 1.8.0_161 frozen upon startup on Mac OS XJDK 1.8.0_161 中的 Java Mission Control 在 Mac OS X 上启动时冻结
【发布时间】:2018-07-02 04:36:12
【问题描述】:

我正在尝试在 Mac OS X High Sierra(10.13.2,2018 年 1 月的补充更新)上启动 JDK 1.8.0_161 中提供的 Java Mission Control,并且 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 Gatekeeper 相关的问题吗!?)

以及如何正确地向 Oracle 报告...我已经搜索了他们的错误数据库但没有成功,当我尝试提交错误时,我无法确定哪个是正确的子类别(参见 https://bugreport.java.com/submit_intro.do),如JMC 未列在“工具”部分...有什么建议!?

【问题讨论】:

  • 适用于 JDK 10.0.1 附带的 JMC 6

标签: java macos jmc


【解决方案1】:

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

  1. here 下载 swt 可可罐。
  2. 转到 JDKs jmc 路径(您可以通过右键单击 Dock 中的 jmc 图标 -> 选项 -> 在 Finder 中显示,然后右键单击应用程序 -> 显示包内容来找到此路径)。

    • 例如: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 ../备份现有的jar

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

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

【讨论】:

  • 我有 jdk 1.8.0_202,它没有“org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar”⇒ ls plugins/org.eclipse.swt。 cocoa.macosx* plugins/org.eclipse.swt.cocoa.macosx.nl_ja_4.4.0.v20140623020002.jar plugins/org.eclipse.swt.cocoa.macosx.x86_64.nl_ja_4.4.0.v20140623020002.jar plugins/org.eclipse。 swt.cocoa.macosx.nl_zh_4.4.0.v20140623020002.jar plugins/org.eclipse.swt.cocoa.macosx.x86_64.nl_zh_4.4.0.v20140623020002.jar
  • 插件似乎有 #s 版本,当您在替换 jar 中复制时导致启动失败
  • 第一步中的链接确实返回,但我尝试过的所有镜像都是 404。改用这个:search.maven.org/… 并下载了最新的(在我的情况下为 3.109)。成功了!
  • 我用 SWT 3.108.0 版本修复了异常。最新版本对我来说是错误的。
  • 为我工作 jdk v1.8.0_211。使用了3.108.0版本的jar。谢谢@RasikaPerera
【解决方案2】:

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

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

(Oracle 内部)错误参考:JMC-5139

【讨论】:

  • 这个bug在java版本“1.8.0_162”上仍然存在
  • @klara 这甚至在 JDK 8u152 中也不起作用。
  • 这个问题从 JDK 8u152 开始,我不知道有任何工作可以为即将发布的 JDK 8 更新版本解决这个问题。
  • 1.8.0_171 上的 bug 仍然存在
  • 你知道哪些版本的 SWT 会受到这个 bug 的影响吗?我们在本地应用程序中遇到了类似的问题,确实使用了“旧版本”的 SWT,但在 SWT 的错误跟踪器上找不到相应的问题...
【解决方案3】:

我有同样的问题,如果你不介意使用 eclipse,你可以安装这个插件:https://marketplace.eclipse.org/content/java-mission-control

但是作为Klara's accepted answer,我最终设法运行了Java Mission Control(虽然不是最新版本,但它仍然可以在没有大工作区的情况下解除对我的阻止):

  1. 下载an older JDK version(我拿了Java SE Development Kit 8u91
  2. 我将它放在我的 /Library/Java/JavaVirtualMachines 存储库中。 我没有更改我的环境变量,因为我想继续使用更新的版本。
  3. 我启动了放在 jdk1.8.0_91.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app 中的应用

【讨论】:

    【解决方案4】:

    根据官方网站,这是一个已知问题。自 2018 年 1 月以来,他们似乎没有对此采取任何行动。

    https://www.oracle.com/technetwork/java/javase/jmc55-release-notes-2412446.html#known-iss

    这提到了三个解决方案,但我按照@Rasika Perera 的回答在 JDK 1.8.0_202 上解决了这个问题

    或者您可以下载适用于 MacOS 的最新版本的 JDK Mission Control https://www.oracle.com/java/technologies/javase/products-jmc7-downloads.html

    【讨论】:

      猜你喜欢
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多