Java Mission Control от JDK 1.8.0_161 заморожен при запуске в Mac OS X
Я пытаюсь запустить Java Mission Control, как указано в JDK 1.8.0_161, в Mac OS X High Sierra (10.13.2, с дополнительным обновлением от января 2018 года), а приложение 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
)
Как боковая проверка, я успешно с успехом запускал JMC JDK 1.8.0_161 на Windows 10.
Так вы испытываете ту же проблему?
Есть ли какие-то настройки, чтобы настроить работу? (Например, это будет проблема, связанная с Mac OS X Gatekeeper!?)
И как сообщить об этом Oracle правильно... Я искал их базу данных ошибок без успеха, и когда я пытаюсь представить ошибку, я не могу понять, какая из них будет подходящей подкатегорией (см. https://bugreport.java.com/submit_intro.do), поскольку JMC не указан в разделе TOOLS... Любой совет!?
Ответы
Ответ 1
Это, к сожалению, ошибка, которую мы недавно обнаружили, вызванная несовместимостью между старыми версиями Eclipse/SWT и новыми исправлениями, выполненными в JDK 8u152 (backported от JDK 9).
Обходным решением является запуск более старой версии JDK 8 или последней версии JDK 7 (которая включает ту же версию JMC). JDK 9 также работает, включая новый JMC 6.
(Oracle Internal): JMC-5139
Ответ 2
Обходной путь для этого есть, как упомянуто @jwatkins в комментарии.
- Загрузите банку cocoa SWT с здесь.
Перейдите в JMK-путь JDK (Вы можете найти этот путь, щелкнув правой кнопкой мыши значок jmc в доке → Параметры → Показать в Finder, затем щелкните правой кнопкой мыши App → Показать содержимое пакета).
- Например:
cd
/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home/lib/missioncontrol
Сделайте резервную копию существующей банки, используя sudo mv
plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar
../
- Скопируйте загруженный zip swt.jar, используя
sudo cp ~/Downloads/swt.jar
plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.103.1.v20140903-1947.jar
- Перезапустите
jmc
ПРИМЕЧАНИЕ: помните! имя вашего нового скопированного jar файла должно совпадать со старым (для загрузки jar файлов используется OSGi bundles.info)
Ответ 3
У меня была такая же проблема, и если вы не возражаете против использования eclipse, вы можете установить этот плагин: https://marketplace.eclipse.org/content/java-mission-control.
Но когда Клара приняла ответ, мне в итоге удалось запустить Java Mission Control (хотя и не самую новую версию, но она все еще разблокировала меня без большого обходного пути):
- Загрузите старую версию JDK (я взял
Java SE Development Kit 8u91
) - Я поместил его в мой /Library/Java/JavaVirtualMachines репозиторий. Я не изменил свои переменные окружения, поскольку я хочу продолжать использовать более новую версию.
- Я запустил приложение, размещенное в jdk1.8.0_91.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app
Ответ 4
Может быть, есть другой обходной путь в соответствии с запиской о выпуске Oracle JMC, он сказал, что
На платформе Mac OS X, если JDK установлен в месте, содержащем пробелы, невозможно запустить Java Mission Control (JMC) с помощью средства запуска jmc в bin или приложения Java Mission Control. Обходной путь должен либо изменить местоположение без пробелов, либо запустить JMC, используя следующее:
java -XstartOnFirstThread -Djava.net.preferIPv4Stack=true -Dorg.eclipse.swt.internal.carbon.smallFonts -jar <JAVA_HOME>/lib/missioncontrol/mc.jar -ws cocoa
Хорошо работает на 1.8.0_181
Замечания к выпуску Java Mission Control (JMC) 5.2
Ответ 5
Это известная проблема, согласно официальному сайту. И они, похоже, ничего не делают с января 2018 года.
https://www.oracle.com/technetwork/java/javase/jmc55-release-notes-2412446.html#known-iss
Это упоминает три решения, но я следовал за ответом @Rasika Perera, чтобы решить эту проблему на JDK 1.8.0_202