140 votes

JRE 1.7 - version de java - renvoie : java/lang/NoClassDefFoundError : java/lang/Object

Lors de l'exécution de n'importe quelle application java, ou simplement de 'java', la jvm échoue :

Une erreur s'est produite pendant l'initialisation de la VM
java/lang/NoClassDefFoundError : java/lang/Object

Voici une liste de mauvais réponses :

  1. Le répertoire d'accueil Java correct, y compris le répertoire /bin, se trouve dans le PATH global.

  2. JAVA_HOME est correctement défini

  3. L'exécution de la commande java -fullversion fonctionne

    $ java -fullversion
    
    ./java full version "1.7.0_05-b05"
  4. Les liens symboliques dans /usr/java pointent tous vers l'installation correcte de Java.

  5. Je n'ai pas installé de Java par défaut lorsque j'ai créé le système.

  6. java -version échoue... même erreur que ci-dessus

  7. L'exécution des commandes à partir de la structure de répertoire de l'installation java ne fonctionne pas non plus.

  8. C'est du java 64 bits pour un ordinateur 64 bits.

Des idées ?

8voto

user3213415 Points 21

Il vous manque très probablement un fichier appelé rt.jar dans votre installation, qui contient le fichier de classe pour java.lang.Object. Vérifiez vos fichiers d'installation, etc.

En particulier, notez qu'un intsaller 64 bits se superpose (ou s'installe "à côté") d'une installation 32 bits existante. En d'autres termes, pour obtenir une installation 64 bits pleinement fonctionnelle, vous devez d'abord exécuter l'installation 32 bits, puis procéder à une installation 64 bits si vous disposez d'une machine 64 bits...

Si, au lieu de cela, vous ne faites qu'une installation 64 bits, il vous manquera certains fichiers dans l'installation et vous obtiendrez des erreurs telles que celle ci-dessus.

7voto

Sous Windows 10, je rencontrais le même problème avec JRE 1.8 (8u121).
Dactylographie

java -version

l'invite cmd revient

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Tous les autres commandements, echo %JAVA_HOME% , echo %JRE_HOME% , echo %PATH% , java -fullversion a bien fonctionné.

En allant dans les variables d'environnement sur le panneau d'administration du système, supprimez de PATH le lien C:\ProgramData\Oracle\Java\javapath et assurez-vous d'avoir mis dans PATH le lien vers C:\Program Files\Java Folder\bin .

Après cela, vérifiez si dans C:\Windows\System32 il existe un java.exe si c'est vrai, supprimer ce fichier.

Tapez maintenant java -version cela fonctionne bien.

6voto

kdn Points 61

Ce problème se produit lorsque vous installez le JDK en _uncompressing_ au lieu de _executing_ il.

Par exemple :

unzip jdk-6u45-linux-x64.bin  (wrong)

sh ./jdk-6u45-linux-x64.bin   (right)

Dans le premier scénario, les bibliothèques d'exécution, comme rt.jar, ne sont pas automatiquement décompressées (ainsi, vous pouvez trouver les fichiers rt.pack, etc. au lieu des fichiers .jar).

4voto

developer747 Points 1762

J'ai eu le même problème récemment. Dans mon cas, ma machine Windows 7 a automatiquement téléchargé java et ajouté C:\ProgramData\Oracle\Java\javapath au début de ma variable d'environnement path, ce qui a perturbé mon java. Une fois que je me suis débarrassé de cette variable dans le chemin, ça a marché.

3voto

Peter Nielsen Points 1

Si vous faites "chmod u+rx" sur le binaire java et que vous l'exécutez, il décompressera les fichiers jar et vous pourrez faire une version java sans erreur d'exécution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X