我键入"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)
Run Code Online (Sandbox Code Playgroud)
我该怎么解决这个问题?PS我有一个mac.
fvu*_*fvu 20
Java类应该以magic(hex)值开头0xCAFEBABE(整齐).你的值1347093252是0x504B0304十六进制,这恰好是一个ZIP文件的神奇值(ASCII中的前两个字节是Phil Katz的 PK ,是ZIP格式的创建者).一个jar也是一个zipfile btw,所以你的jar可能很腐败.尝试重建整个项目.
这通常意味着您为比运行它时使用的 java 版本更新的版本编译了 jar。检查是否使用相同版本的java来编译和运行。如果这不能解决问题,请提供更多信息,例如编译器命令和java -version.