java.lang.ClassFormatError JVMCFRE076 错误的幻数

Leo*_*ers 4 java

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

我有一个 web 应用程序,它在我本地的 Ubuntu Linux Java 环境中运行良好。当我在 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
Run Code Online (Sandbox Code Playgroud)

问题源于类名。只有在名称中包含“Util”时才会抛出异常。我将 Class 重命名为 DbTool 并且一切正常。深入挖掘后发现,我无法在类名称中包含部分包名称。

我有一个可行的解决方法,但我仍然想知道为什么抛出异常以及为什么它在我的本地环境中有效,但在远程环境中无效。

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

Hun*_*hao 5

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