it-swarm.com.ru

Mac OS, JDK1.7 (и 1.8) не содержит символ JNI_CreateJavaVM

Мне нужно запустить Eclipse Kepler на Mac OS через JDK 1.7 (это требуется для плагина PyDev).

Проблема в том, что, хотя мне удалось установить 1.7 jdk и настроить Eclipse.ini для его использования, я получаю ошибку

Общая библиотека JVM "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin../jre/lib/server/libjvm.dylib" не содержит символ JNI_CreateJavaVM.

UPDATE умные люди здесь https://github.com/joeferner/node-Java/issues/90 утверждают, что достаточно добавить JNI в JVMCapabilities в файле info.plist лайк

<key>JVMCapabilities</key>
   <string>JNI</string>

Но я попробовал, и это не работает в моем случае

27
Sindico

Щелкните правой кнопкой мыши значок Eclipse и выберите «показать содержимое пакета». Внутри каталога содержимого вы найдете файл с именем «Info.plist». Прокрутите вниз до конца файла, пока не найдете это

<key>Eclipse</key>
    <array>
        <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                or add a VM found via $/usr/libexec/Java_home -V
          <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/Java</string>
          <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/Java</string>
        -->

Обратите внимание на закомментированный раздел. Переместите объявление пути jdk из раздела комментариев. Теперь это должно выглядеть так.

<key>Eclipse</key>
    <array>
      <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/Java</string>
        <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
                or add a VM found via $/usr/libexec/Java_home -V
          <string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/Java</string>
        -->

Последний шаг, перейдите в/Library/Java/JavaVirtualMachines и проверьте присутствующее там имя пакета jdk. Замените версию jdk в приведенной выше команде этим.

/Library/Java/JavaVirtualMachines/{your_jdk_package_name}/Contents/Home/bin/Java

Необязательно: На некоторых машинах вам может потребоваться закрыть Finder после того, как вы все это сделали, перейдите в папку Eclipse и снова нажмите Eclipse, чтобы он заработал.

49
Shan

Только для тех, кто, возможно, застрял после выполнения обеих задач, описанных выше, и все еще видел одно и то же сообщение об ошибке: я был уверен, что я скачал 64-битную версию Eclipse, но оказалось, что у меня была 32-битная версия. После загрузки 64-битного все заработало!

15
tobylaroni

У меня был отлично работающий Eclipse Luna, и я начал получать эту ошибку, пытаясь перейти на Java 8 (и обновить jre, jdk и т.д.) . Решение Шана не сработало для меня . Поэтому я просто скачал и установил последнее затмение. Работает нормально. Экономит время отладки и возни.

0
aalosious