【发布时间】:2015-10-13 03:07:50
【问题描述】:
如屏幕截图所示,模块/项目设置为 jdk 1.7
项目/sdk设置为7:
模块设置为 jdk 7:
但是从 javap 我们看到 java6 (50) ??
a) 确认该类刚刚编译(7/22/15 @18:14):
ls -l ./target/classes/org/yardstickframework/spark/DataGenerator.class
-rw-r--r-- 1 steve staff 3829 Jul 22 18:14 ./target/classes/org/yardstickframework/spark/DataGenerator.class
b) 哪个版本的 java?
javap -verbose ./target/classes/org/yardstickframework/spark/DataGenerator.class | grep ver
minor version: 0
major version: 50
注意:pom.xml 将语言级别设置为 jdk7
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
更新根据建议,我从命令行运行编译:
mvn clean compile
这也导致 jdk6 /major version=50。现在为什么会这样?我正在检查 POM 以查看是否存在其他异常情况。
另一个更新根据 Roman 的要求:这里是 maven 输出
$mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10", arch: "x86_64", family: "mac"
又一次更新 ElliottFrisch 建议对 maven 编译器插件进行一些补充。这是更新的部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<verbose>true</verbose>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
【问题讨论】:
-
JAVA_HOME变量的值是多少? -
我不认为这很重要,但无论如何:$echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
-
运行时遇到什么错误?是的,
JAVA_HOME应该无关紧要。 -
这是一个 maven 项目吗?也许您的 POM 中的源和目标级别设置为 1.6?当你从命令行构建它时会发生什么?将 JDK 默认的“项目字节码版本”设置留空。
-
@Strelok 我错了。 maven的语言级别是1.7。但同时 - 命令行 maven 的编译也在执行 jdk6。在这里变得陌生..
标签: java scala maven intellij-idea scala-maven-plugin