/ / "ClassFormatError: Несъвместима магическа стойност", когато се опитвате да стартирате Java jar file - java

"ClassFormatError: Несъвместима магическа стойност", когато се опитвате да стартирате Java jar file - java

Въведох "java -jar ShowTime.jar" и получих това съобщение за грешка:

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)

Как да поправя това? Послепис Имам мака.

Отговори:

18 за отговор № 1

Класът Java трябва да започне с магическата (шестнадесетична) стойност 0xCAFEBABE (чист ххх). Вашата стойност 1347093252 е 0x504B0304 в шестнадесетичен, което се случва да бъде магическата стойност за ZIP файл (първите 2 байта в ASCII са PK за Фил Кац, създател на ZIP формат). Един буркан също е zipfile btw, така че вероятно вашият буркан е доста корумпиран. Опитайте да възстановите целия проект.


1 за отговор № 2

Това обикновено означава, че сте съставили бурканапо-нова версия на Java, отколкото сте я използвали. Проверете дали използвате същата версия на java за компилиране и изпълнение. Ако това не отстрани проблема, моля, предоставете повече информация, като командата за компилатора и изхода на java -version.