Подтвердить что ты не робот

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>

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

4b9b3361

Ответ 1

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

<key>Eclipse</key>
    <array>
        <!-- to use a specific Java version (instead of the platform 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 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

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

Ответ 2

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

Ответ 3

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