我想在 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 许可协议
您可能应该尝试更新系统变量中的
JAVA_HOME
和 eclipse 中使用的 Java 版本以与在 MacOSX 中,类似于:
如 评论 中所述,Linux 上的默认路径为: