简体   繁体   English

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

[英]Java Mission Control from JDK 1.8.0_161 frozen upon startup on Mac OS X

I'm trying to launch Java Mission Control as provided in the JDK 1.8.0_161 on Mac OS X High Sierra (10.13.2, with Supplemental Update of January 2018) and the JMC application is frozen, ie I'm unable to browse in the JVM Browser panel.我正在尝试在 Mac OS X High Sierra(10.13.2,2018 年 1 月的补充更新)上启动 JDK 1.8.0_161 中提供的 Java Mission Control,并且 JMC 应用程序被冻结,即我无法浏览JVM 浏览器面板。

As I've other former JDK installed, therefore I've checked JMC with the following versions with success:由于我安装了其他以前的 JDK,因此我已成功检查了以下版本的 JMC:

  • 1.8.0_121 1.8.0_121
  • 1.8.0_144 1.8.0_144
  • 1.8.0_151 1.8.0_151

So the problem is very specific to the JDK 1.8.0_161.所以这个问题非常特定于 JDK 1.8.0_161。

(To see your JDKs, run the command /usr/libexec/java_home -V ) (要查看您的 JDK,请运行命令/usr/libexec/java_home -V

(To run a former JMC, ie /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/jmc ) (要运行以前的 JMC,即/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/jmc

As a side verification, I've run the JMC of the JDK 1.8.0_161 on Windows 10 with success.作为侧面验证,我在 Windows 10 上成功运行了 JDK 1.8.0_161 的 JMC。

So do you experience the same issue ?那么您是否遇到同样的问题?

Is there some settings to tweak to have it working ?是否有一些设置可以调整以使其正常工作? (Eg would it be an issue related to Mac OS X Gatekeeper !?) (例如,这会不会是与 Mac OS X Gatekeeper 相关的问题!?)

And how to report it to Oracle properly ... I've searched their bug database without success, and when I try to submit a bug, I cannot figure which would be the right subcategory (cf https://bugreport.java.com/submit_intro.do ), as JMC is not listed in the TOOLS section ... Any advice !?以及如何正确地向 Oracle 报告......我搜索了他们的错误数据库但没有成功,当我尝试提交错误时,我无法确定哪个是正确的子类别(参见https://bugreport.java.com /submit_intro.do ),因为 JMC 没有列在工具部分......有什么建议!?

There's a workaround for this, as mentioned by @jwatkins in a comment.正如@jwatkins 在评论中提到的,有一个解决方法。

  1. Download the swt cocoa jar from here .这里下载 swt 可可罐。
  2. Go to JDKs jmc path (You can find this path by right-clicking on jmc icon in the dock -> Options -> Show in Finder, Then right click on App -> Show Package Contents).转到 JDKs jmc 路径(您可以通过右键单击 Dock 中的 jmc 图标 -> 选项 -> 在 Finder 中显示,然后右键单击应用程序 -> 显示包内容来找到此路径)。

    • For example: cd /Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home/lib/missioncontrol例如: cd /Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home/lib/missioncontrol
  3. Back up exisiting jar using sudo mv plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar ../使用sudo mv plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar ../

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

NOTE : Remember!注意:记住! your new copied jar file's name should be exactly as the old one(it uses OSGi bundles.info to load jars)您新复制的 jar 文件的名称应与旧的完全相同(它使用 OSGi bundles.info 加载 jar)

This is unfortunately a bug that we recently discovered, caused by incompatibilities between old Eclipse/SWT versions and new fixes done in JDK 8u152 (backported from JDK 9).不幸的是,这是我们最近发现的一个错误,由旧 Eclipse/SWT 版本与 JDK 8u152(从 JDK 9 向后移植)中完成的新修复之间的不兼容引起。

Workaround is to run older version of JDK 8, or the latest version of JDK 7 (which includes the same version of JMC).解决方法是运行旧版本的 JDK 8 或最新版本的 JDK 7(包括相同版本的 JMC)。 JDK 9 also works, with the new JMC 6 included. JDK 9 也适用,包括新的 JMC 6。

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

I had the same issue and if you don't mind using eclipse, you can install this plugin: https://marketplace.eclipse.org/content/java-mission-control .我有同样的问题,如果你不介意使用 eclipse,你可以安装这个插件: https : //marketplace.eclipse.org/content/java-mission-control

But as Klara's accepted answer I eventually managed to run Java Mission Control (not the very newest version though but it still unblock me without big workarround):但是作为Klara 接受的答案,我最终设法运行了 Java Mission Control(虽然不是最新版本,但它仍然可以在没有大的解决方法的情况下解除对我的阻止):

  1. Download an older JDK version (I took the Java SE Development Kit 8u91 )下载较旧的 JDK 版本(我使用了Java SE Development Kit 8u91
  2. I placed it in my /Library/Java/JavaVirtualMachines repository.我将它放在我的 /Library/Java/JavaVirtualMachines 存储库中。 I did not change my environment variables as I want to keep using a newer version.我没有更改我的环境变量,因为我想继续使用较新的版本。
  3. I launched the app placed in jdk1.8.0_91.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app我启动的app放在jdk1.8.0_91.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app

This is a known issue according to the official website.根据官方网站,这是一个已知问题。 And they don't seem to be doing anything about it since Jan 2018.自 2018 年 1 月以来,他们似乎没有采取任何措施。

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

That mentions three solutions but I followed @Rasika Perera answer to fix this issue on JDK 1.8.0_202这提到了三个解决方案,但我按照@Rasika Perera 的回答在 JDK 1.8.0_202 上解决了这个问题

Or you can download this latest version of JDK Mission Control which works on MacOS https://www.oracle.com/java/technologies/javase/products-jmc7-downloads.html或者您可以下载适用于 MacOS https://www.oracle.com/java/technologies/javase/products-jmc7-downloads.html 的最新版本的 JDK Mission Control

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM