4

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

我有一个在本地 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

4

1 回答 1

5

造成这个问题的原因是你编译运行的时候使用了不同的java虚拟机( Sun HotSpot VM and IBM J9 VM),也就是说编译和运行环境统一不会出现这个问题。

于 2013-04-29T17:04:43.600 回答