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

starfury Points 19

J'ai le même problème sur des installations Linux x86_64 avec JDK 1.7.0_40 i586. J'ai compris que le problème est que rpm ne peut pas décompresser les fichiers jar, comme mentionné par Rigg802 (bien que rpm complète en marquant le succès) :

Unpacking JAR files...
        rt.jar...
/var/tmp/rpm-tmp.zLzkkb: /usr/java/jdk1.7.0_40/bin/unpack200: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Error: unpack could not create JAR file:

        /usr/java/jdk1.7.0_40/jre/lib/rt.jar

Le fichier /lib/ld-linux.so.2 est fourni par glibc-2.12-1.107.el6_4.4. i686 qui n'est pas parmi les deps rpm de jdk rpm.

Oracle JDK rpm nécessite également des versions 32 bits de libgcc-4.4.7-3.el6. i686 à installer

La solution de contournement consiste donc à installer d'abord glibc-2.12-1.107.el6_4.4.i686 et libgcc-4.4.7-3.el6.i686.

0voto

Liudvikas Points 346

Une solution rapide qui a fonctionné pour moi :

for file in $(find "$JAVA_HOME" -name "*pack")
do 
    unpack200 "${file}" "${test_file/%pack/jar}";
done

0voto

user5974531 Points 1

J'ai constaté que cette erreur se produisait lorsque j'extrayais le fichier .rpm.

J'ai ensuite supprimé ce dossier et téléchargé jdk-7u79-linux-x64.tar.gz pour Linux 64 et extrait le contenu de ce fichier à la place. Aussi : export JAVA_HOME=/opt/java/jdk1.7.0_79 export JDK_HOME=/opt/java/jdk1.7.0_79 export PATH=${JAVA_HOME}/bin

0voto

stratovarius Points 23

Il suffit d'installer le jre à nouveau . Cela a tout simplement résolu mon problème. (Le lot de démarrage de SonarQube a commencé à donner cette erreur après l'installation de JDK).

0voto

Ateeque Shaikh Points 27

Allez dans le panneau de configuration, désinstallez le matériel lié à java (fermez eclipse si ouvert), puis réinstallez java et ouvrez eclipse, nettoyez les projets.

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