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 ?

0voto

user7323228 Points 1

Je viens de le faire sur Solaris et j'ai rencontré le même problème où même "java -version" ne fonctionne pas. Il y a une raison pour laquelle les versions 64 bits de la distro sont BEAUCOUP plus petites que les 32 bits. C'est en effet comme indiqué ci-dessus :

En d'autres termes, pour obtenir une installation 64 bits entièrement fonctionnelle, vous devez d'abord exécuter l'installation 32 bits, puis l'installation 64 bits si vous disposez d'une machine 64 bits...

J'ai donc lancé le programme d'installation pour le 32 bits :

sh jdk-6u131-solaris-sparc.sh

Puis j'ai lancé le programme d'installation pour le 64 bits :

sh jdk-6u131-solaris-sparcv9.sh

Cela me permet de choisir parmi plusieurs exécutables java :

  • $ find . -nom java
  • ./jdk1.6.0_131/db/demo/programmes/scores/java
  • ./jdk1.6.0_131/db/demo/programmes/vtis/java
  • ./jdk1.6.0_131/bin/java
  • ./jdk1.6.0_131/bin/sparcv9/java
  • ./jdk1.6.0_131/jre/bin/java
  • ./jdk1.6.0_131/jre/bin/sparcv9/java

Les java sparcv9 sont les versions 64 bits et ils fonctionnent avec "-version" lorsqu'ils sont installés à côté du JDK 32 bits.

  • ./jdk1.6.0_131/bin/sparcv9/java -version
  • java version "1.6.0_131"
  • Environnement d'exécution Java(TM) SE (build 1.6.0_131-b32)
  • Java HotSpot(TM) 64-Bit Server VM (build 20.131-b32, mode mixte)

-Dan

0voto

Shubham Jain Points 63

Dans la fenêtre 10 il y a déjà un chemin présent dans env comme C:\>ProgramData\Oracle\Java\javapath qui contient des liens symboliques vers les exécutables.

Lorsque j'installe une nouvelle version et que je la supprime de ma variable d'environnement, tous mes projets commencent à l'afficher.

J'utilise eclipse oxygen dans la fenêtre 10

Pour le résoudre :-

  1. Je supprime juste le chemin C:\>ProgramData\Oracle\Java\javapath de la variable d'environnement et a ajouté le nouvel environnement JAVA_HOME et %JAVA_HOME%/bin dans le chemin.

  2. Je réinstalle le jdk avec des privilèges d'administrateur (je supprime le dossier JRE précédent).

  3. Ouvrez votre projet eclipse > clic droit > Goto Proprieties> In Libraries > Now remove JRE System Library > Click on Add Library > select "JRE System Library" > Click on Next > Select "Workspace default JRE(jre1.8.x_xxx)" > terminer

Mon problème est résolu :) J'espère que cela vous aidera :)

0voto

Joe Jadamec Points 76

Cela a corrigé le problème que j'avais sur CentOS

sudo yum install java-1.8.0-openjdk-devel

voir aussi Configuration de JAVA_HOME et CLASSPATH dans CentOS 6

0voto

Plabon Dutta Points 620

J'ai donc tout essayé et finalement, il semble que la réinstallation de java après sa désinstallation ait réglé mon problème.

0voto

SumataPatil Points 69

Si un problème se pose pour la version d'installation de JAVA

C:\Where JAVA

donnera l'emplacement de la java qu'il ramasse. Si vous avez un chemin différent de votre installation, supprimez ces fichiers ou renommez-les (peut-être en tant que _backup). Vous obtiendrez la bonne version du fichier java.

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