java - javac使用注释处理器返回不正确的错误代码

标签 java compiler-errors javac

当使用注释处理器和类路径中损坏的jar运行javac时,java会出错,但返回0作为错误代码(0表示它运行时没有任何错误)。如果在没有注释处理器的情况下运行相同的命令,它将返回1作为错误代码。因此,添加注解处理器可以消除错误代码。

以下是一些示例输出:

 running compile with a corrupted jar
 error: error reading corruptedJar.jar; error in opening zip file
 Using Test AnnotationProcessor
 Error level 0
 running compile without the corrupted jar
 Using Test AnnotationProcessor
 Error level 0
 running compile without the annotationProcessor but with the corrupted jar
 error: error reading corruptedJar.jar; error in opening zip file
 1 error
 Error level 1

我用来运行上述输出的bat文件是
 @echo off
 echo running compile with a corrupted jar
 javac -cp annotationProcessor.jar;corruptedJar.jar HelloWorld.java
 echo Error level %errorlevel%
 echo running compile without the corrupted jar
 javac -cp annotationProcessor.jar HelloWorld.java
 echo Error level %errorlevel%
 echo running compile without the annotationProcessor but with the corrupted jar
 javac -cp corruptedJar.jar HelloWorld.java
 echo Error level %errorlevel%

我是否缺少参数,或者这是javac内部的错误,返回了错误的错误级别?

编辑..

https://gist.github.com/ludjer/570708438dbcb3f08106的所有源代码

commentProcessor.jar中有一个名为AnnotationProcessor的类

theruptedJar.jar是一个损坏的zip文件(从技术上讲,可以是测试矿井的任何非zip文件,都是带有重命名扩展名的文本文件)

最佳答案

我用oracle打开了一个错误,它在JDK错误跟踪器上:

https://bugs.openjdk.java.net/browse/JDK-8151255

关于java - javac使用注释处理器返回不正确的错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481375/

相关文章:

compiler-errors - magento 2.0.18类Magento\Framework\Intl\NumberFormatterFactory不存在

java - 无法用maven编译java项目

swift - EXC_BAD_INSTRUCTION(代码 = EXC_I386_INVOP,子代码 = 0x0)

java - 无法使用 JDK11 javac 为仅变量类文件创建 JNI 头文件

java - 如何包装 JFrame 以使其适合我的所有按钮并将事件监听器附加到 Java 中的这些按钮?

java - 按两个条件拆分字符串

java - Hopfield 神经网络无法识别

java - 避免两个表中的两个查询

command-line - 是否可以从命令行运行 Eclipse JDT 编译器,如 javac?

java - 从命令提示符下使用 javac 编译 java 程序