我用JDK 7
编译了一个servlet。
我使用Tomcat作为servlet容器。但它使用旧版JVM 1.6
。
现在我的错误为Unsupported major.minor version
。
我必须改变哪一个?
OR
答案 0 :(得分:2)
要在其下运行的Tomcat的Java版本应该是该版本的Tomcat支持的版本。检查上面的文档,或者只使用您正在使用的文档。
您用于编译的版本应该是相同的版本,至少应该是相同的major.minor数字。
您真的应该使用相同的版本来运行Tomcat以及所有开发和测试以及构建和单元测试运行等。它让一切变得更轻松,摆脱了浪费时间的微妙错误。
答案 1 :(得分:1)
这两种方法中的任何一种都可行。更改tomcat JAVA_HOME
很简单,因为它不需要你的代码重新编译(假设你的Tomcat与Java 6兼容)。
您可以简单地将tomcat .bat文件中的JAVA_HOM
E指向计算机上的Java 6位置。
答案 2 :(得分:0)
使用Java 1.6重新编译,问题应该消失。
答案 3 :(得分:0)
在这两个选项中,可能更容易降级运行Tomcat的JVM(或者选择不同的JVM,因为Mac OS允许多个并行的JVM安装)。
另一种选择是使用“-target 1.6”重新编译代码,这将编译可由Java 1.6虚拟机运行的.class
文件。这是一个更好的IMO解决方案,因为后来的构建也可以接受1.6 JVM。