Intellij Idea 无法从测试运行Java预览功能-从非测试代码运行正常

ux6nzvsh  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(217)

我正在试用Java 19中的“外部函数和内存API(预览版)”。我使用jextract创建了netcdf_h. java。这是在src中的main()程序中进行的,但当我尝试在test中从测试程序运行它时,它失败了,并显示以下消息:
未为sunya/cdm/netcdf/ffm/netcdf_h(类文件版本63.65535)启用预览功能。请尝试使用“--enable-preview”java.lang运行。不支持的类版本错误:sunya/cdm/netcdf/ffm/netcdf_h(类文件版本63.65535)未启用预览功能。请尝试使用“--enable-preview”运行
我正在使用Gradle构建:

...

tasks {
    val ENABLE_PREVIEW = "--enable-preview"
    withType<JavaCompile>() {
        options.compilerArgs.add(ENABLE_PREVIEW)
        // Optionally we can show which preview feature we use.
        options.compilerArgs.add("-Xlint:preview")
        // Explicitly setting compiler option --release
        // is needed when we wouldn't set the
        // sourceCompatiblity and targetCompatibility
        // properties of the Java plugin extension.
        options.release.set(19)
    }
    withType<Test>() {
        useJUnitPlatform()
        jvmArgs!!.add(ENABLE_PREVIEW)
    }
    withType<JavaExec>() {
        jvmArgs!!.add(ENABLE_PREVIEW)
    }
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "19"
    }
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(19))
    }
}

和IntelliJ运行。
看起来可能还有其他地方我需要添加“--enable-preview”在gradle的测试?

3zwjbxry

3zwjbxry1#

多亏了answer
应为:

withType<Test>() {
    useJUnitPlatform()
    jvmArgs("--enable-preview")
}
withType<JavaExec>() {
    jvmArgs("--enable-preview")
}

相关问题