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

sp0*_*00m 20 java ant javac output

有没有解释清楚和简单的方式来了解编译器输出运行时,javac通过Ant的任务吗?

这是我的javacAnt标签:

<javac srcdir="${myproject.src}" destdir="${myproject.class}">
    <!-- ... -->
</javac>
Run Code Online (Sandbox Code Playgroud)

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

/path/to/build.xml:42: Compile failed; see the compiler error output for details.
Run Code Online (Sandbox Code Playgroud)

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


很少有可能有用的配置元素:

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

我知道在SO上有一些相关的回答问题,但没有一个真正回答这个简单的问题:

Dan*_*lan 8

我想你正在寻找这个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
Run Code Online (Sandbox Code Playgroud)

您的代码有些奇怪且特定的东西会导致错误的错误消息.你能创建一个重现错误的示例项目吗?


正如您所提到的,debug="true"不是您正在寻找的属性.

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

你知道什么时候你得到堆栈跟踪并且它有行号吗?这是什么debug="true".如果它关闭,你不会得到行号.

  • 你在哪里添加 `verbose="true"`?我遇到了同样的问题,使用 Eclipse 生成了 build.xml,它只说`somepath/build.xml:34: Compile failed; 有关详细信息,请参阅编译器错误输出。` 我已将其作为属性添加到唯一的 &lt;javac&gt; 标记中。仍然无法在任何地方看到编译器错误输出... (2认同)