java.lang.ClassFormatError
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CodeFarmer_/article/details/80744661
---------------------
版权声明:本文为CSDN博主「朱世良」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CodeFarmer_/article/details/80744661
这个错误很奇怪,查了很久终于找到了,在这里整理一下:
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is
not native or abstract in class file javax/persistence/GenerationType
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
有以下几种原因:
1. 类文件是以 ASCII 模式而不是二进制模式来上传的。
2. 网页服务器是以二进制而非 ASCII 来发送类文件的。
3. 可能有类路径错误阻止了代码找到类文件。
4. 如果类被加载了两次,第二次就会导致这个异常被抛出来。
5. 使用了不同版本的 Java 运行时。
我的原因是FTP工具的原因,我使用的是XFTP4(Build 0223),设置的传输模式是Binary二进制上传,但是FTP工具实际上的上传方式是ASCII模式,所以导致一直报这个错误。我换了一个FTP工具之后该问题解决。