JMH如何使用Java8?

How to use Java 8 for JMH?

我使用 JMH 编写了一个基准测试,在构建时我得到以下编译失败

lambda expressions are not supported in -source 1.6
[ERROR] (use -source 8 or higher to enable lambda expressions)

JAVA_HOME设置为jdk1.8_40。 我尝试在 jmh 源文件夹 jmh-core 中的 pom.xml 中更改目标和源:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <compilerVersion>1.8</compilerVersion>
                <source>1.8</source>
                <target>1.8</target>
                <compilerArgument>-proc:none</compilerArgument>
            </configuration>
        </plugin>

但我仍然得到同样的错误

您使用的是 Mac 吗?如果是,则 java 6 已经安装。我建议将其从 /System/Library/Java/JavaVirtualMachines/ 中删除。

无论如何,请检查 java -version 以查看正在使用的 jdk 版本。然后在命令行中键入 mvn -version。是不是指向java6?如果是这样,请将以下内容添加到您的 ~/.mavenrc:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/{jdk-version}/Contents/Home

其中 jdk-version 是您的 java 8

版本