Класс JavaLaunchHelper реализован в двух местах

Сегодня я обновил свою Intellij Idea на macOS Sierra, и теперь, когда я запускаю приложения в консоли, у меня есть эта ошибка:

objc [3648]: класс JavaLaunchHelper реализован как в /Library/Java/JavaVirtualMachines/jdk 1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0), так и в/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Содержание/Главная/jre/lib/libinstrument.dylib(0x10ea194e0). Один из двух будет использован. Какой из них undefined.

Ответ 1

Здесь вы можете найти все детали:

  • IDEA-170117 "objc: класс JavaLaunchHelper реализован в обоих..." предупреждение в пультах запуска

Это старая ошибка в Java на Mac, которая вызвана Java Agent, который используется IDE при запуске приложения. Это сообщение безвредно и безопасно игнорировать. Комментарий разработчика Oracle:

Сообщение доброе, нет отрицательного влияния этой проблемы так как обе копии этого класса идентичны (скомпилированы из тот же источник). Это чисто косметическая проблема.

Проблема устранена в Java 9 и в Java 8 update 152.

Если это вас раздражает или влияет на ваши приложения каким-либо образом (это не должно быть), обходной путь для IntelliJ IDEA заключается в отключении агента idea_rt launcher, добавив idea.no.launcher=true в idea.properties (Help | Edit Custom Properties...). Обходной путь вступит в силу при следующем перезапуске среды IDE.

Я не рекомендую отключать агент запуска IntelliJ IDEA. Он используется для таких функций, как изящное выключение (кнопка выхода), потоки дампов, обходные пути - проблема с слишком длинной командной строкой, превышающей пределы ОС и т.д. Потеря этих функций только для скрытия безобидного сообщения, вероятно, не стоит того, до вас.

Ответ 2

Поскольку "это сообщение безвредно" (см. ответ @CrazyCoder), простым и безопасным обходным путем является то, что вы можете сбросить это сообщение жужжания на консоли IntelliJ IDEA параметры:

  • 【Настройки】 - 【Редактор】 - 【Общие】 - 【Консоль】 - 【Сложить консольные строки, содержащие】
    Конечно, вы можете использовать 【Найти действие...】 (cmd+shift+A на mac) и набрать Fold console lines that contain, чтобы более эффективно перемещаться.
  • добавить Class JavaLaunchHelper is implemented in both

image

На моем компьютере, оказывается: (LGTM: b)

image

И вы можете развернуть сообщение, чтобы снова проверить его:

image

PS:

По состоянию на октябрь 2017 года эта проблема теперь разрешена в jdk1.9/jdk1.8.152/jdk1.7.161
для получения дополнительной информации см. ответ @muttonUp)

Ответ 3

Я использую Intellij Idea 2017, и я попал в ту же проблему. То, что решило проблему для меня, было просто

  • закрыть проект в intelliJ
  • Файл → Создать → проект из существующих ресурсов
  • использовать импорт из внешней модели (если есть)
  • снова откройте проект.

Ответ 4

Это случилось со мной, когда я установил Intellij IDEA 2017, перейдите в меню Preferences → Build, Execution, Deployment → Debugger и отключите эту опцию: "Force Classic VM для JDK 1.3.x и ранее". Это работает для меня.

Ответ 5

Такая же ошибка, я обновляю свой Junit и разрешаю его

org.junit.jupiter:junit-jupiter-api:5.0.0-M6

к

org.junit.jupiter:junit-jupiter-api:5.0.0