如何在Ubuntu中为Java 5/Tomcat 5.5编译.war?

如何在Ubuntu中为Java 5/Tomcat 5.5编译.war?,java,web-services,tomcat,war,Java,Web Services,Tomcat,War,我尝试在ubuntu中为Java5/Tomcat5.5编译一个webtools项目(使用手动安装的Eclipse3.4)。我将已安装的jre设置为java-1.5.0-sun-1.5.0.18,并将编译器符合性级别设置为1.5。当我将其导出到.war文件,并尝试在Tomcat(Windows XP、Tomcat 5.5.27、Java 1.5.018)中部署它时,会出现以下错误: SEVERE: Error deploying web application archive Jdbc2Ei.wa

我尝试在ubuntu中为Java5/Tomcat5.5编译一个webtools项目(使用手动安装的Eclipse3.4)。我将已安装的jre设置为java-1.5.0-sun-1.5.0.18,并将编译器符合性级别设置为1.5。当我将其导出到.war文件,并尝试在Tomcat(Windows XP、Tomcat 5.5.27、Java 1.5.018)中部署它时,会出现以下错误:

SEVERE: Error deploying web application archive Jdbc2Ei.war java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) ... 严重:部署web应用程序归档Jdbc2Ei.war时出错 java.lang.UnsupportedClassVersionError:.class文件中的版本号错误 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClass(未知源) ... 有人知道怎么解决这个问题吗

java.lang.UnsupportedClassVersionError:.class文件中的版本号错误


检查所有JAR是否都是针对java5编译的

在windows下编译,它可以正常工作!某个地方有虫子。。。这个问题会有一段时间得到解决。

如果它在Windows中工作,可能是由于环境的不同,而不是JDK的Linux版本中存在的错误。检查Linux中是否存在多个JVM(几乎可以肯定,因为Ubuntu可能附带了非Sun版本),并110%确保使用预期版本进行编译。发行

which javac


通过命令行也可能有帮助,因为所有这些都可以用来定位JDK(以及编译命令/工具中使用的设置)。

您的tomcat运行的JDK比用于编译某些类的JDK要少。使用兼容的JDK重新编译或升级tomcat的JRE。

一个简单的版本:
更改项目首选项后,在Ubuntu上导出WAR文件之前,您是否尝试在您的项目上强制编译(project->Clean…在Eclipse中)?

检查了它。。。这不是问题所在:(我尝试了java-1.5.0-sun-1.5.0.18、java-6-openjdk、java-6-sun-1.6.0.13。每一个版本都产生了一个稍微不同的war,但没有一个版本有效……是的,不同的编译设置下的时间不同!
echo $JAVA_HOME; echo $JDK_HOME