java.lang.ClassFormatError

时间:2012-03-09 13:24:32

标签: java linux classformaterror

我需要开发一个示例应用程序并将其部署在Linux中并进行测试。

问题在于我正在

Exception in thread "main" java.lang.ClassFormatError: com.tata.topSamples.QuoteData (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
   at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
   at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)

通过谷歌搜索我发现,你使用比Linux机器更新版本的Java编译jar

在我的Windows环境中,我有1.6版本,在Linux环境中,java版本是1.4.2。

我们如何解决此错误?

2 个答案:

答案 0 :(得分:4)

  

请告诉我怎样才能解决这个错误?

使用-target 1.4-source 1.4标志进行编译,或者在Linux机器上更新为更新版本的Java。 (请注意,使用这些标志可以让您在Windows机器上保留更新版本的JDK。)

所以:

javac -target 1.4 -source 1.4 Foo.java Bar.java

使用GCJ而不是(比如说)OpenJDK吗?

答案 1 :(得分:0)

在Linux环境中升级版本,或在Windows上使用1.4.2构建版本。