JRE 1.7-java version-returns: java / lang/Noclassdeffonderror: java/lang / Object
lors de l'exécution de n'importe quelle application java, ou tout simplement 'java', la jvm échoue:
Erreur s'est produite lors de l'initialisation de la VM
java / lang / Noclassdeffonderror: java/lang / Object
Ici est une liste de mauvais réponses:
-
le répertoire Java home correct, y compris le répertoire /bin, est sur le chemin global
-
JAVA_HOME est correctement réglé
-
exécuter la commande java-fullversion works
$ java -fullversion ./java full version "1.7.0_05-b05"
-
les liens symboliques dans /usr/java pointent tous vers l'installation java correcte
-
Je n'ai pas installé de java par défaut lorsque j'ai créé le système
-
java -version
échouer...même erreur que ci-dessus -
émettre les commandes à partir de la structure de répertoire de l'installation java ne fonctionne pas non plus
-
c'est du java 64 bits pour un
des idées?
27 réponses
le problème vient d'une installation java incorrecte (par exemple une installation faite sans droits d'administrateur ou simplement en déballant les outils.zip.)
vous pouvez soit désinstaller, puis réinstaller Java avec un installateur et / ou plus de privilèges ou essayer ce qui suit:
vérifiez dans votre dossier JDK pour les fichiers *.pack
dans jre/lib
et jre/lib/ext
comme rt.pack
(l'emplacement par défaut est c:\nameof_jdk_folder\jre\lib
pour Microsoft Windows et /usr/java/lib
pour Unix / GNU Linux)
ces fichiers *.pack
doivent être déballés dans les fichiers .jar
en utilisant cette commande:
-
Pour Windows:
%JAVA_HOME%\bin\unpack200 -r -v -l "" rt.pack rt.jar
-
Pour *nix, un analogue de la ligne de commande va décompresser les fichiers:
cd /usr/java/lib
/usr/bin/unpack200 rt.pack rt.jar
et répétez cette étape avec tous les *.pack fichiers et de relancer votre programme.
For java 8 @ * NIX OS:
Du répertoire "<jdk1.8_root>/jre/lib"
(Pour moi, c': /usr/java/jdk1.8.0_05/jre/lib)
Run:
../../bin/unpack200 rt.pack rt.jar
../../bin/unpack200 jsse.pack jsse.rar
../../bin/unpack200 charsets.pack charsets.jar
(Que Vous ne pouvez pas utiliser le système de unpack200 causer des problèmes de la version.) Ce unpack200 est dans le répertoire java 8 (pour moi: / usr / java / jdk1.8.0_05 / bin)
Benedek
Il semble que, pour une architecture 64 bits, vous devez installer la version 32 bits et la version 64 bits de jre (indépendant de l'architecture des fichiers comme rt.jar sont distribués uniquement dans la version 32 bits).
N'oubliez pas de faire attention à inclure le bon exécutable java dans la variable D'environnement global PATH.
Solution Rapide pour les personnes impatientes ;) Windows machines, essayez ceci:
Allez dans le répertoire C:\Windows\System32
et supprimez java.exe
(ou renommez-le en quelque chose comme java.exe.old
).
depuis au moins 1.6, il ne devrait pas y avoir de java.exe
dans le répertoire Windows. Si il l'est, c'est un vestige de quelque chose.
un peu plus de lecture:
je suis vraiment surpris qu'une question de 2012 n'ait pas encore de réponse approuvée et j'ai en fait rencontré le même problème en 2015 sur mon Win 7 32-Bit OS!
que s'est-il passé?
fondamentalement, tout fonctionnait bien, j'ai téléchargé la base de données H2 et quand j'ai essayé de démarrer H2 Console (Command Line)
j'ai eu:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
j'ai trouvé cette question et j'ai pu confirmer les mêmes symptômes:
JAVA_HOME est réglé correctement:
echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26
java -version
échoue, tandis que java --fullversion
fonctionne amende:
java -fullversion
java full version "1.6.0_45-b06"
SOLUTION:
Allez dans le répertoire C:\Windows\System32
et supprimez (j'ai en fait renommé) le fichier java.exe
!!!!
maintenant, je comprends:
java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
et H2 Console (Command Line)
fonctionne aussi bien!
crédits aller à la dernière poste dans ce forum: https://bukkit.org/threads/java-lang-noclassdeffounderror-java-lang-object.70450/
il vous manque probablement un fichier appelé rt.jar dans votre installation qui a le fichier class pour java.lang.Objet. Vérifiez vos fichiers d'installation, etc.
en particulier, notez qu'un intsaller 64 bits superpose (ou installe" next to") une installation 32 bits existante. En d'autres termes, pour obtenir une installation 64 bits entièrement fonctionnelle, vous devez d'abord lancer l'installation 32 bits, et suivre cela avec une installation 64 bits si vous avez une machine 64bit capable...
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 comme celle ci-dessus.
j'ai téléchargé new JDK aujourd'hui (1.8.0.73) a commencé c:> java.exe
et a obtenu l'infâme:
Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
je voulais juste partager ma solution de travail ici.
quand je cd'IED dans le dossier jdk\bin
, Java fonctionnait très bien donc je savais que c'était le PATH
. J'ai mis PATH
à \jdk\bin
au CMD pour le prouver et ça a marché.
, l'un des dossiers dans le PATH
a dû avoir java.exe
qui causait le conflit, je pensais. Comme il s'est avéré ,c'est C:\>ProgramData\Oracle\Java\javapath
qui tient symlinks aux exécutables.
java.exe
pointait vers jre\bin
. Le fichier était corrompu, quand j'ai commencé \jre\bin\java.exe
--la même erreur. Bingo. J'ai réinstallé JRE et le problème a disparu. Heureux de codage...
ce problème se produit lorsque vous installez le JDK par _uncompressing_
it au lieu de _executing_
it.
par exemple:
unzip jdk-6u45-linux-x64.bin (wrong)
sh ./jdk-6u45-linux-x64.bin (right)
Dans le premier scénario, les bibliothèques, comme rt.jar, ne sont pas automatiquement uncompresessed (ainsi, vous pouvez trouver le rt.pack de fichiers, etc. au lieu de l' .jar).
sur Windows 10, je faisais face au même problème avec JRE 1.8 (8u121).
Dactylographie
java -version
le prompt retour cmd
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
toutes les autres commandes, echo %JAVA_HOME%
, echo %JRE_HOME%
, echo %PATH%
, java -fullversion
ça a bien marché.
aller aux variables d'environnement sur le panneau d'administration du système, supprimer du chemin le lien C:\ProgramData\Oracle\Java\javapath
, et être sûr d'avoir mis dans le chemin le lien vers C:\Program Files\Java Folder\bin
.
après cela, vérifiez si dans C:\Windows\System32
existe un fichier java.exe
; si vrai, supprimez ce fichier.
tapant maintenant java -version
ça marche très bien.
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 débarrassé du chemin, ça a marché.
si vous faites "chmod u+rx" sur le binaire java et l'exécuter, il va déballer les fichiers jar et vous pouvez faire une version java sans erreurs d'exécution
vous ne pouvez pas installer uniquement le 64bit, vous devez d'abord installer le 32bit et ensuite ajouter les composants 64bit.
de java.com:
installer la JRE sur un système 64 bits qui permet une JVM 32 bits est un processus en deux étapes: d'abord installer la jre 32 bits, puis installer le support supplémentaire pour les opérations 64 bits. Les noms des fichiers sont les suivants:
si vous installez une version 64-bit sans installer d'abord 32-bit, cette erreur se produira malgré la correction de tous les autres problèmes. J'ai une toute nouvelle machine Dell i7 64 bits Windows 10 Pro qui exécute Java 8u71. Après avoir ajouté mon % path% et % classpath% aux variables d'environnement et essayé plusieurs autres correctifs, désinstaller 64-bit, Installer 32-bit puis réinstaller 64-bit corrigé.
certains des problèmes, comme le fait de ne pas avoir vos fichiers déballés, etc. qui ont été mentionnés comme causes possibles peuvent encore causer des problèmes, mais si vous ne le faites pas, ainsi, les autres correctifs ne fonctionneront pas.
dans mon cas, j'utilise windows 8.1 (installé jdk1.8.0_77), j'ai fait trois choses:
- I supprimé jdks
- j'ai renommé le java.fichier exe à l'intérieur C:\Windows\System32
- j'ai aussi supprimé C:\ProgramData\Oracle\Java\javapath in my PATH (echo % PATH%)
et voilà!
j'ai fait face à la même question et j'ai constaté que le lien symbolique dans les données d'émission(C:\ProgramData\Oracle\Java\javapath) was wrong. J'ai donné le bon chemin et ça a marché.
des détails sur la façon de corriger les données du programme sont disponibles ici
une Autre réponse pourrait être d'utiliser le goudron.gz fichier au lieu de le Linux. Il semble y avoir quelque chose comme ça aussi pour la plate-forme solaris. De cette façon, tous les fichiers seront déjà dans le format prévu et il n'y aura pas de problèmes de déballage.
j'ai un problème sur les 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éballer les fichiers jar, comme mentionné par Rigg802 (bien que rpm termine le succès de marquage):
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
File/lib / ld-linux.alors?2 est fourni par glibc-2.12-1.107.el6_4.4. i686 qui n'est pas parmi les régimes de JDK rpm.
Oracle JDK rpm nécessite également des versions 32 bits de libgcc-4.4.7-3.el6. i686 à installer
Donc, la solution est d'installer glibc-2.12-1.107.el6_4.4.i686 et libgcc-4.4.7-3.el6.i686 d'abord.
Quick fix qui a fonctionné pour moi:
for file in $(find "$JAVA_HOME" -name "*pack")
do
unpack200 "${file}" "${test_file/%pack/jar}";
done
j'ai trouvé que cette erreur s'est produite lorsque j'ai extrait les .fichier rpm.
j'ai ensuite retiré ce dossier et téléchargé jdk-7u79-linux-x64.tar.gz pour Linux 64 et extrait le contenu de ce fichier à la place. Également: export JAVA_HOME= / opt / java / jdk1.7.0_79 export JDK_HOME= / opt / java / jdk1.7.0_79 export PATH= $ {JAVA_HOME} / bin
il suffit d'installer le jre à nouveau . Simplement, il a résolu mon problème. (Le lot de démarrage de SonarQube a commencé à donner cette erreur après que j'ai installé jdk)
aller au panneau de configuration, Désinstaller les éléments liés à java(fermer eclipse si ouvert), puis réinstaller java et open eclipse, nettoyer les projets.
vient de le faire sur Solaris et a rencontré ce 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. Il est en effet comme indiqué ci-dessus:
en d'autres termes, pour obtenir une installation 64 bits entièrement fonctionnelle, vous devez d'abord lancer l'installation 32 bits, et ensuite avec une installation 64 bits si vous avez une machine 64bit capable...
alors j'ai couru le installateur pour le 32-bit:
sh jdk-6u131-solaris-sparc.sh
puis j'ai lancé l'installateur pour le 64-bit:
sh jdk-6u131-solaris-sparcv9.sh
cela me donne plusieurs exécutables java à choisir:
- $ find . - Nom java
- ./jdk1.6.0_131/db/demo/programmes/scores/java
- ./jdk1.6.0_131/db/demo/programmes/ifp/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 de sparcv9 sont les versions 64bit et ils fonctionnent avec "- version " lorsqu'ils sont installés à côté du JDK 32bit.
- ./ jdk1.6.0_131 / bin/sparcv9 / java-version
- version java "1.6.0_131"
- Java (TM) SE Runtime Environment (build 1.6.0_131-b32)
- Java HotSpot (TM) 64-Bit Server VM (build 20.131-b32, mixed mode)
- Dan
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.
quand j'installe une nouvelle version et que je la supprime de ma variable d'environnement, mon projet tout entier commence à la montrer.
j'utilise de l'oxygène eclipse dans la fenêtre 10
pour le résoudre: -
-
je viens de retirer chemin
C:\>ProgramData\Oracle\Java\javapath
à partir de la variable d'environnement et d'ajouter une nouvelle env as JAVA_HOME et % JAVA_HOME% / bin dans le chemin -
j'ai réinstallé le jdk avec des privilèges d'administration (supprimer le dossier JRE précédent)
- ouvrez votre projet eclipse > clic droit > allez aux propriétés> dans les bibliothèques > maintenant, supprimez la bibliothèque système JRE > cliquez sur Ajouter une bibliothèque > sélectionnez" bibliothèque système JRE "> cliquez sur Suivant > sélectionnez " espace de travail par défaut JRE(jre1.8.x_xxx) "> finition
mon numéro est résoudre :) Espérons qu'il saura vous aider :)
cela a corrigé le problème que j'avais sur CentOS
sudo yum install java-1.8.0-openjdk-devel
donc, j'ai continué à tout essayer et enfin il semble que réinstaller java après l'avoir désinstallé a corrigé mon problème.
j'étais confronté au même problème: une erreur s'est produite lors de l'initialisation de VM java / lang / Noclassdeffonderror: java/lang / Object
suivre les étapes ci-dessous pour résoudre la question:
Étape 1. Goto C:\Program file\ and search for Java folder.
Étape 2. Supprimer C:\Program dossiers \ dossier Java.
Étape 3. Télécharger le nouveau Jdk pour votre version 32 bits/64 bits de http://www.oracle.com/technetwork/java/javase/downloads/index.html
Étape 4. Installer JDK
Étape 5: Maintenant mettre JAVA_HOME à "C:\Program fichiers\Java\jdk1.8.0_91 "
Étape 6: Ouvrez l'invite de commande et entrez java -version.
ça marche.
j'ai fait face au même problème, j'ai installé deux versions java donc il a causé ce problème. pour confirmer cette aller et cliquer icône java dans le panneau de configuration si doesnt open then issue is same, juste aller et désinstaller une version. morceau de gâteau. grâce.
sur windows cela fonctionne pour moi
C:\jdk-8u162-windows-x64\jre\lib>..\..\bin\unpack200 -r -v rt.pack rt.jar