OSX 10.10 и Eclipse Luna. Собственное приложение падает при запуске изнутри Eclipse

Я сегодня обновился до Yosemite и имею много проблем с java. Большинство java-приложений аварийно завершаются, но после переустановки старого Mac-Java 1.6 эта проблема, похоже, решена.

Но у меня другая серьезная проблема. Когда я запускаю Eclipse Luna и создаю собственное приложение Java и запускаю это приложение с помощью кнопки запуска в Eclipse, он выдает следующий отчет:

dyld: lazy symbol binding failed: Symbol not found: _CGContextSetAllowsAcceleration
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Libraries/libawt.jnilib
  Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

dyld: Symbol not found: _CGContextSetAllowsAcceleration
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Libraries/libawt.jnilib
  Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

Когда я экспортирую приложение в файл .jar и запускаю его из внешнего eclipse, все работает отлично.

У вас есть решение, как я могу это исправить? В противном случае я должен переустановить Mavericks, чтобы быть продуктивным завтра.

Ответ 1

После того, как я снова установил с помощью http://support.apple.com/kb/DL1572, у меня было две версии JDK 1.6 в системе.

  • /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/
  • /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/(1.6.0_65-b14-466.1)

1 (-462) использовался Eclipse. Это дало ту же ошибку, что и у вас.

2 (-466) использовался из командной строки. Это работало.

Поэтому я изменил "Установленные JRE" в настройках Eclipse, чтобы он указал на номер 2 (-466). После этого все отлично работало.

/Martin

Ответ 2

Это исправление работало для меня:

Откройте файл /Applications/ {YOUR_IDEA}/Contents/Info.plist и укажите на новую java, изменив

<key>JVMVersion</key>
<string>1.6*</string>

к

<key>JVMVersion</key>
<string>1.7+</string>

Ответ 3

У меня была такая же проблема. Переустановите java из http://support.apple.com/kb/DL1572

Это сработало для меня после этого.

Ответ 4

для будущих пользователей: я столкнулся с этой проблемой в netbeans и webstorm. Как сказал другой

  • обновить jdk до http://support.apple.com/kb/DL1572
  • и обновить файл ~ ~.bash_profile, чтобы указать на новое (обновленное!) местоположение jdk 6, добавив (изменив существующий) следующее:
export PATH=$PATH:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

Дополнительное примечание для пользователей netbean: убедитесь, что файл "/Applications/NetBeans/NetBeans 7.3.1.app/Contents/Resources/NetBeans/etc/netbeans.conf" указывает на правый jdk home, если вы ранее его переопределили:

netbeans_jdkhome = "/System/Library/Frameworks/JavaVM.framework/Версии/1.6.0/Home"

Ответ 5

Когда мой Mac разбился и был заменен (сохраняя жесткий диск), у моего Eclipse была пара проблем для разработки. Среди них были некоторые из моих проектов, относящихся к 1.6, когда на самом деле я обновил до 1.7, и проект должен был обновить эту настройку.

Щелкните правой кнопкой мыши project- > properties- > Java Build Path- > Libraries- > Добавить Library- > JRE System Library

Система найдет установленную JRE и сделает ее по умолчанию. Удалите старую JRE и запустите приложение.