一尘不染

通过Ant任务运行javac时如何查看编译器输出?

java

javac通过Ant任务运行时,是否有任何清楚说明和简单的方法来查看编译器输出?

这是我的javacAnt标签:

<javac srcdir="${myproject.src}" destdir="${myproject.class}">
    <!-- ... -->
</javac>

这是我收到的唯一错误消息:

/path/to/build.xml:42: Compile failed; see the compiler error output for details.

问题是我不知道如何 查看编译器错误输出以了解详细信息


很少有配置元素可以帮助您:

  • 蚂蚁1.6.5
  • Windows 7 x64
  • Java 1.6.0_20 x32
  • 通过Eclipse启动目标


阅读 265

收藏
2020-12-03

共1个答案

一尘不染

我认为您正在寻找verbose="true"属性。

要求编译器提供详细输出;默认为否。

您已经在评论中提到,这不能打印出错误的原因。好吧,我认为您的情况正在发生其他变化。我有一个示例项目,无论哪种方式,我的错误原因都会被打印出来。这是输出verbose="false"

[mkdir] Created dir: C:\Projects\MavenSandbox\target\classes
[javac] C:\Projects\MavenSandbox\mavensandbox.xml:284: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 3 source files to C:\Projects\MavenSandbox\target\classes
[javac] C:\Projects\MavenSandbox\src\main\java\com\sandbox\Sandbox.java:8: error: cannot find symbol
[javac]         System.out.prinln("Hello, I\'m the best!");
[javac]                   ^
[javac]   symbol:   method prinln(String)
[javac]   location: variable out of type PrintStream
[javac] 1 error

错误和特定于您代码的错误导致错误消息。您可以创建一个重现该错误的示例项目吗?


正如您提到的,debug="true"这不是您要查找的属性。

指示是否应使用调试信息编译源;默认为关闭。如果设置为off,则-g:none将在支持该功能的编译器的命令行上传递(对于其他编译器,将不使用命令行参数)。如果设置为true,则debuglevel属性的值确定命令行参数。

您知道何时获得堆栈跟踪并且其中有行号吗?就是debug="true"那样 如果关闭,则不会显示行号。

2020-12-03