gradle java9 无法定位平台:'Java SE 9' 使用工具链:'JDK 8 (1.8)'

新手上路,请多包涵

我想在 eclipse oxygen 中的 gradle 项目中使用 java9。当我跑步时:

 Run as> Gradle Test on  GreeterTest.java

使用以下代码:

 package hello.test;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import hello.Greeter;

class GreeterTest {

    @Test
    void test() {
        Greeter greeter = new Greeter();
        assertEquals("Hello world", greeter.sayHello());
    }
}

我测试的课程是:

 package hello;

public class Greeter {
  public String sayHello() {
    return "Hello world!";
  }
}

我收到错误信息

无法定位平台:使用工具链的“Java SE 9”:“JDK 8 (1.8)”。

我的 eclipse.init 是

> -startup ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
> --launcher.library /Users/stein/.p2/pool/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_\1.1.550.v20170928-1359
> -product org.eclipse.epp.package.jee.product
> -showsplash org.eclipse.epp.package.common
> --launcher.defaultAction openFile
> --launcher.a/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/jre/bin
> -vmargs
> -Dosgi.requiredJavaVersion=1.9
> -Dosgi.instance.area.default=@user.home/eclipse-workspace
> -XX:+UseG1GC
> -XX:+UseStringDeduplication
> --add-modules=ALL-SYSTEM
> -XstartOnFirstThread
> -Dorg.eclipse.swt.internal.carbon.smallFonts
> -Dosgi.requiredJavaVersion=1.9
> -Xms256m
> -Xmx1024m
> --add-modules=ALL-SYSTEM
> -Xdock:icon=../Resources/Eclipse.icns
> -XstartOnFirstThread
> -Dorg.eclipse.swt.internal.carbon.smallFonts
> -Declipse.p2.max.threads=10
> -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
> -Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
>
> ```

[我添加了 JAVA_HOME](https://i.stack.imgur.com/odTl9.png)

[我添加了构建路径](https://i.stack.imgur.com/y46c8.png)

[我已经更改了编译参数](https://i.stack.imgur.com/18crZ.png)

> 我在 Build.Gradle 中设置了编译参数。

buildscript { repositories { mavenCentral() } dependencies { classpath ‘org.junit.platform:junit-platform-gradle-plugin:1.0.2’ } }

repositories { mavenCentral() }

ext.junit4Version = ‘4.12’ ext.junitVintageVersion = ‘4.12.2’ ext.junitPlatformVersion = ‘1.0.2’ ext.junitJupiterVersion = ‘5.0.2’ ext.log4jVersion = ‘2.9.0’

apply plugin: ‘java’ apply plugin: ‘eclipse’

apply plugin: ‘org.junit.platform.gradle.plugin’

jar { baseName = ‘junit5-gradle-consumer’ version = ‘1.0.0-SNAPSHOT’ }

compileJava { sourceCompatibility = 9 targetCompatibility = 9 }

compileTestJava { sourceCompatibility = 9 targetCompatibility = 9 options.compilerArgs += ‘-parameters’ }

junitPlatform { // platformVersion ‘1.0.2’ filters { engines { // include ‘junit-jupiter’, ‘junit-vintage’ // exclude ‘custom-engine’ } tags { // include ‘fast’ exclude ‘slow’ } // includeClassNamePattern ‘.Test’ } // configurationParameter ‘junit.jupiter.conditions.deactivate’, ‘’ // enableStandardTestTask true // reportsDir file(‘build/test-results/junit-platform’) // this is the default logManager ‘org.apache.logging.log4j.jul.LogManager’ }

dependencies { // JUnit Jupiter API and TestEngine implementation testCompile(“org.junit.jupiter:junit-jupiter-api:\({junitJupiterVersion}") testRuntime("org.junit.jupiter:junit-jupiter-engine:\){junitJupiterVersion}”)

// If you also want to support JUnit 3 and JUnit 4 tests
testCompile("junit:junit:${junit4Version}")
testRuntime("org.junit.vintage:junit-vintage-engine:${junitVintageVersion}")

// To avoid compiler warnings about @API annotations in JUnit code
//testCompileOnly('org.apiguardian:apiguardian-api:1.0.0')

// To use Log4J's LogManager
testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}")
testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}")

// Only needed to run tests in an (IntelliJ) IDE(A) that bundles an older version
testRuntime("org.junit.platform:junit-platform-   launcher:${junitPlatformVersion}")

}

task wrapper(type: Wrapper) { description = ‘Generates gradlew[.bat] scripts’ gradleVersion = ‘4.1’ }

”`

我必须做什么才能让它运行?

原文由 stein korsveien 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 322
1 个回答

您可能应该尝试更新系统变量中的 JAVA_HOME 和 eclipse 中使用的 Java 版本以与

JAVA_HOME=/path/to/jdk9

在 MacOSX 中,类似于:

 JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin

评论 中所述,Linux 上的默认路径为:

 /usr/lib/jvm/java-9-openjdk

原文由 Naman 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题