2012-03-09 20 views
2

我需要开发一个示例应用程序并将其部署到Linux中并对其进行测试。java.lang.ClassFormatError

的问题是,我得到

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) 

通过google搜索,我发现,你编译与Java的比你的Linux机器上的一个较新版本的jar

在我的窗户环境我有1.6版本,在Linux环境下,java版本是1.4.2。

我们该如何解决这个错误?

+0

升级安装在Linux机器上的Java?或者对你来说不可能? – 2012-03-09 13:27:21

+0

将您的Linux环境更新为更新的Java版本; 1.4.2荒谬地过时了。 – 2012-03-09 13:27:37

回答

4

请告诉我如何解决这个错误?

可以使用-target 1.4-source 1.4标志进行编译,也可以在Linux机器上更新到更新版本的Java。 (请注意,使用这些标志可以让你保持了JDK的最新版本在您的Windows对话框。)

所以:

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

使用GCJ,而不是(说)OpenJDK

+0

你能告诉我怎么做? – Pawan 2012-03-09 13:27:59

+0

@ yyyi777:哪位?我给了你两个选择,你没有告诉我们任何有关你的Linux部署的限制或你如何构建你的代码。 – 2012-03-09 13:29:46

0

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

相关问题