java - 如何隐藏 java 11 Nashorn 弃用警告

标签 java gradle javac java-11 nashorn

我最近升级到 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可能会提到类似的问题。

最佳答案

您看到的警告是由编译器发出的,--no-deprecation-warning 仅抑制运行时警告 "Warning: Nashorn engine is planned to be removed from a future 的 JDK 版本”,在创建脚本引擎实例时发出。

您应该能够使用:

@SuppressWarnings("removal")
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();

在源代码中完全抑制警告。

或者以其他方式使用:

-Xlint:-removal

作为编译器参数。这将抑制警告,但您仍会收到每个文件的注释。

关于java - 如何隐藏 java 11 Nashorn 弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55641738/

相关文章:

java - 如何将 .jar 文件转换为 Unix 可执行文件? (苹果)

java - 'ERR_OSSL_EVP_WRONG_FINAL_BLOCK_LENGTH' 在 Node js 中解密时

Java正则表达式匹配左边一个条件

java - 找不到 "libgojni.so"

android - Gradle,向 adb 发送命令

java - Android - 无法运行、gradle 错误、重复条目

java - 改进 Java Soap 客户端

java - 不支持的主要.次要版本 52.0

java - 如何创建隔离的 JVM?

java - 如何使用 gradle 强制执行 java 编译器版本?