如果我的问题与此处提到的任何其他项目重复,请道歉。
我有以下配置:
Ubuntu 14.04 64位 JDK 1.8u45 Maven v3.3
我正在尝试将我的代码打包成可部署的战争。
战争成功创建,但在我的浏览器上访问它时,我遇到了不支持的major.minor版本52.0错误。
在谷歌搜索我看到这是由于安装的JDK和maven编译器级别不匹配。
但就我而言,两者都是一样的。 - > JDK 1.8和maven-compiler版本3.3,源和目标1.8。
如何让我的构建成功编译?
输出一些有用的命令:
mvn -v
root@labuser-OptiPlex-3010:/# mvn -v
Maven home: /usr/local/apache-maven-3.3.3
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_45/jre Default locale: en_IN, platform encoding: UTF-8 OS name: "linux", version: "3.16.0-43-generic", arch: "amd64", family: "unix"
答案 0 :(得分:0)
mvn -v
将告诉您Java版本maven正在使用什么。在控制台中运行它,它可能会显示它使用了错误的Java版本。
答案 1 :(得分:0)
由于你提到你可以用maven成功创建战争,听起来JDK 8正在构建期间按预期使用。问题是您的服务器显然正在使用旧版本的Java运行。虽然您自己只安装了JDK 8,但您的计算机上必须已经安装了旧版本的Java。确保JAVA_HOME设置为JDK 8,并且您的服务器正确地看到该版本。看看你是否也设置了JRE_HOME env变量,并将其指向JDK 8。
答案 2 :(得分:0)
I got the solution by running :
<tomcat-root-dir> / bin > catalina.bat version.
它显示我机器上的JDK是JDK1.7,而用于编译WAR的JDK是1.8。
感谢大家的投入。