/ / «ClassFormatError: Valeur magique incompatible» lors de la tentative d'exécution du fichier jar Java - java

«ClassFormatError: valeur magique incompatible» lors de l'exécution du fichier jar Java - java

J'ai tapé "java -jar ShowTime.jar" et j'ai reçu ce message d'erreur:

Exception in thread "main" java.lang.ClassFormatError: Incompatible magic value 1347093252 in class file ShowTime
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

Comment dois-je résoudre ce problème? P.S. J'ai un mac

Réponses:

18 pour la réponse № 1

Une classe Java doit commencer par la valeur magique (hex) 0xCAFEBABE (chouette hein). Votre valeur 1347093252 est 0x504B0304 en hexadécimal, qui est la valeur magique pour un fichier ZIP (les deux premiers octets en ASCII sont PK pour Phil Katz, créateur du format ZIP). Un pot est aussi un fichier zip, si bien que votre pot est probablement corrompu. Essayez de reconstruire le projet entier.


1 pour la réponse № 2

Cela signifie généralement que vous avez compilé le pot pourune version plus récente de java que celle avec laquelle vous l'avez lancée. Vérifiez si vous utilisez la même version de Java pour compiler et exécuter. Si cela ne résout pas le problème, veuillez fournir plus d’informations telles que la commande du compilateur et la sortie de java -version.