java.lang.ClassFormatError JVMCFRE076坏幻数

时间:2013-04-29 15:43:44

标签: java

这个问题已部分解决。我会写这篇文章,因为今天谷歌没有提供那么多的帮助。

我有一个在我的本地Ubuntu Linux Java环境中正常运行的webapp。当我在suse linux环境中部署它时,我得到以下异常:

java.lang.RuntimeException: java.lang.ClassFormatError: JVMCFRE076 bad magic number;
class=com/package/util/MongodbUtil, offset=0 Error: java.lang.ClassFormatError: JVMCFRE076 bad magic number;
class=com/package/util/MongodbUtil, offset=0 /items added=0 /items deleted=0 /items unchanged=0

问题来自班级名称。只有在名称中包含“Util”时才会抛出异常。我将Class重命名为DbTool,一切正常。进一步深入研究发现,我不能在类名中包含部分包名。

我有一个可行的解决方法,但我仍然有兴趣知道为什么抛出异常以及为什么它适用于我的本地环境但不适用于远程环境。

我的本​​地tomcat在打开的JDK 1.6.0_27上运行,而远程tomcat在IBM JRE 1_6_0上运行。两种环境都使用tomcat 6.36

1 个答案:

答案 0 :(得分:3)

导致此问题的原因是您在编译和运行时使用了不同的java虚拟机(Sun HotSpot VM and IBM J9 VM),换句话说,通过统一编译和运行时环境不会出现此问题。