如何隐藏Java 11 Nashorn弃用警告

7

我最近升级到Java11。出现了150个新的Nashorn弃用警告:

Utils.java:31: warning: [removal] NashornScriptEngineFactory in jdk.nashorn.api.scripting has been deprecated and marked for removal
            NashornScriptEngineFactory  factory = new NashornScriptEngineFactory();

有没有可能隐藏这些弃用警告信息?

我尝试过的方法:

tasks.withType(JavaCompile) {
    options.compilerArgs += '-Xlint:-deprecation'
}

./gradlew build -Dnashorn.option.no.deprecation.warning=true

gradle-wrapper.properties: org.gradle.jvmargs= -Dnashorn.args=--no-deprecation-warning

以及

NashornScriptEngineFactory  factory = new NashornScriptEngineFactory();
ENGINE = factory.getScriptEngine(new String[] {"--no-java --no-deprecation-warning"}, null, className -> false);

我认为 JDK-8210140 可能涉及一个类似的问题。

1个回答

8
你看到的警告是编译器发出的。 --no-deprecation-warning 只能抑制运行时发出的警告,即创建脚本引擎实例时发出的警告 "Warning: Nashorn engine is planned to be removed from a future JDK release"
你应该可以使用:
@SuppressWarnings("removal")
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();

在源代码中完全禁止警告。
或者使用以下方法:
-Xlint:-removal

作为编译器参数。这将抑制警告,但您仍将按文件的基础收到通知。

现在NashornScriptEngineFactory本身已经被弃用。 - catGPT
现在NashornScriptEngineFactory本身已经被弃用。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接