web-dev-qa-db-fra.com

Mac OS, JDK1.7 (et 1.8) ne contient pas le symbole JNI_CreateJavaVM.

Je dois exécuter Eclipse Kepler sous Mac OS via un JDK 1.7 (requis par le plug-in PyDev).

Le problème est que bien que j’ai réussi à installer le jdk 1.7 et à configurer le fichier Eclipse.ini afin de l’utiliser, j’obtiens l’erreur

La bibliothèque partagée JVM "/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin../jre/lib/server/libjvm.dylib" ne contient pas le symbole JNI_CreateJavaVM.

METTRE À JOUR personnes intelligentes ici https://github.com/joeferner/node-Java/issues/90 affirme qu'il suffit d'ajouter JNI à JVMCapabilities dans le fichier info.plist comme

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

Mais je l'ai essayé et ça ne marche pas dans mon cas

27
Sindico

Cliquez avec le bouton droit sur l'icône Eclipse et sélectionnez "Afficher le contenu du paquet". Dans le répertoire de contenu, vous trouverez un fichier appelé "Info.plist". Faites défiler vers le bas du fichier jusqu'à ce que vous trouviez ceci

<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>
        -->

Notez la section commentée. Déplacez la déclaration du chemin jdk en dehors de la section des commentaires. Cela devrait ressembler à ça maintenant.

<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>
        -->

Dernière étape, accédez à/Bibliothèque/Java/JavaVirtualMachines et vérifiez le nom du paquet jdk présent. Remplacez la version de jdk dans la commande ci-dessus par celle.

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

Facultatif: sur certaines machines, vous devrez peut-être fermer le Finder une fois que vous avez terminé, accédez au dossier Eclipse, puis cliquez à nouveau sur Eclipse pour que cela fonctionne.

49
Shan

Juste pour ceux qui ont peut-être été bloqués après avoir effectué les deux tâches décrites ci-dessus et toujours le même message d'erreur: j'étais certain d'avoir téléchargé Eclipse 64 bits, mais il s'avère que j'avais la version 32 bits. Après avoir téléchargé 64 bits, tout a fonctionné!

15
tobylaroni

J'avais une Eclipse Luna qui fonctionnait parfaitement et j'ai commencé à rencontrer cette erreur en essayant de passer à Java 8 (et en mettant à jour jre, jdk, etc.) . La solution de Shan ne fonctionnait pas pour moi ... donc je viens de télécharger et d'installer dernière Eclipse. Ça fonctionne bien. Enregistre le temps de débogage et de bidouillage.

0
aalosious