这个问题已部分解决.我会写这篇文章,因为今天google并没有提供太多帮助.
我有一个可在本地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”时,才会引发该异常.我将该类重命名为DbTool,并且一切正常.深入研究发现,我不能在“类”名称中包括部分包名称.
我有一个可行的解决方法,但是我仍然很想知道为什么抛出该异常,以及为什么该异常在我的本地环境而不是在远程环境上有效.
我的本地tomcat在开放的JDK 1.6.0_27上运行,而远程tomcat在IBM JRE 1_6_0上运行.两种环境都使用tomcat 6.36
解决方法:
导致此问题的原因是,在编译和运行时您使用了不同的Java虚拟机(Sun HotSpot VM和IBM J9 VM),换句话说,通过组合编译和运行时环境不会出现此问题.
标签:java
来源: https://codeday.me/bug/20191123/2067049.html