Java jar fichier ne s'exécute pas dans terminal Linux
Je suis en train de lancer un .jar
fichier dans le terminal sur Linux, mais donne une erreur:
[root@localhost dist]# java -jar helloworld.jar
Exception in thread "main" java.lang.ClassFormatError:
helloworld.Helloworld (unrecognized class file version)
at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
at java.net.URLClassLoader.findClass(libgcj.so.7rh)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
at gnu.java.lang.MainThread.run(libgcj.so.7rh).
J'ai vérifié ma version et c'est:
[root@localhost /]# java --version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-51)
Ce qui est à l'origine de cette erreur et comment la corriger?
Vous devez vous connecter pour publier un commentaire.
Essayez de la manière suivante -
Première Étape:
Cela pour s'assurer que vous avez JDK6 installé correctement. Il devrait afficher quelque chose comme cela -
Deuxième Étape:
De cette façon, la javac et java v6 sera utilisé par défaut.
Mise à jour:
Tapez la commande suivante dans votre terminal -
Si vous obtenez
javac 1.6.0_10 or later
que la sortie, alors vous devrez suivre les étapes suivantes. Si vous n'obtenez pas au-dessus de la sortie, vous devrez désinstaller et ré-installer java.Étapes à suivre si la version indiquée est 1.6.0_10 ou plus tard
Créer un lien symbolique-
ln -s /usr/local/java /usr/local/jdk1.6.0_10
Une fois que c'est fait, ajoutez les lignes suivantes à votre
.bashrc
fichierexport JAVA_HOME=/usr/local/jdk1.6.0_10
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
root
accès. Si vous le faites alors vous pouvez tapersudo yum install java
sur la ligne de commande. Si vous n'avez pasroot
de l'accès ou de privilèges d'administration, puis vous devrez entrer en contact avec votre administrateur système.Vous devez avoir compilé avec une version plus récente du JDK/JRE-vous que vous utilisez le pot avec. Vérifier la version du JDK que vous utilisez pour compiler le projet dans Netbeans, puis vérifier le JDK/JRE version de la console à l'aide de
L'erreur est : "non reconnu classe de version de fichier" . Cela signifie que vous essayez de démarrer un bocal qui a été construit par incompatibles version de java.
Que je peux voir, vous exécutez en fait gcc java. Essayez de démarrer ce pot par sun/oracle jre
Exécuter la ligne suivante dans votre propre machine et la machine réelle, vous essayez de déployer:
java -version
Si elle est différente, alors vous devriez obtenir la question.
Note: Si vous obtenez ne peut pas trouver d'erreur de commande lors de l'exécution de la commande ci-dessus, la variable de chemin d'accès ne peut pas être réglé correctement. Dans ce cas, s'il vous plaît aller à la dir où jdk/sdk est installé, à dossier bin et exécutez ensuite la commande.
Vous obtenez cette erreur si vos versions de javac et java ne sont pas les mêmes.
Diagnostiquer le problème de cette façon:
Remarquez comment le javac et java ne sont pas de la même annuaires? Ces deux doivent être de la même place, la même version.
Pour le fixer, j'ai ajouté ces mon .bash_profile
Alors que l'erreur disparaisse.
Vous aurez besoin de la vôtre à l'endroit où vous avez installé java.