我使用jdk 1.7.0,Eclipse IDE(Indigo)在java中开发了一个web应用程序,并在eclipse ide中配置的tomcat(apache-tomcat-7.0.23)上运行该应用程序。
当我尝试通过IDE运行我的应用程序时它运行正常但是当我创建它的战争并将其放在apache部署文件夹(webapps)并从IDE外部运行它时,启动页面成功加载但是当我尝试做的时候对它的任何操作都会给我一个错误
UnsupportedClassVersionError unsupported major.minor version 51.0 unable to load class bean.myclassname
我已经检查了它的jdk 1.7.0以外的java版本,并且JAVA_HOME环境变量也设置为C:\ Program Files \ Java \ jdk1.7.0_01。
答案 0 :(得分:34)
据推测,在外部运行Java时,它不会使用相同版本的Java。仔细查看启动脚本 ,找到它运行的Java版本。您还应该检查启动日志以查看它们是否指示正在运行的版本。
或者,除非您需要 Java 7功能,否则您可以随时将Eclipse中的编译器首选项更改为目标1.6。
答案 1 :(得分:16)
即使你的Eclipse中的JDK是1.7,你也需要确保eclipse编译级别也设置为1.7。您可以检查编制级别 - >窗口 - >首选项 - > Java - 编译器 - 编译级别。
在编译级别与运行时不匹配的情况下,会发生不受支持的主要次要错误。
答案 2 :(得分:2)
java_home环境变量应该指向正确版本的java安装目录的位置,以便tomcat以正确的版本启动。例如,您使用java 1.7构建项目,然后确保JAVA_HOME环境变量指向计算机中的jdk 1.7安装目录。
我有同样的问题,当我在tomcat中部署战争并运行时,链接会抛出错误。但是将变量-JAVA_HOME指向jdk 1.7解决了这个问题,因为我的war文件是在java 1.7环境中构建的。
答案 3 :(得分:0)
尝试将以下内容添加到eclipse.ini文件中:
-vm
C:\Program Files\Java\jdk1.7.0_01\bin\java.exe
您可能还需要在同一文件中将Dosgi.requiredJavaVersion更改为1.7。