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

在通过Ant任务运行javac时,有没有明确解释和简单的方法来查看编译器输出?

这是我的javac Ant标签:

    

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

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

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


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

  • ant1.6.5
  • Windows 7 x64
  • Java 1.6.0_20 x32
  • 通过Eclipse启动目标

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

  • https://stackoverflow.com/a/1275552/1225328 :我无法添加允许compile标记的特定库;
  • https://stackoverflow.com/a/1264622/1225328 :这管理Ant的输出而不是编译器的输出;
  • 编译失败; 有关详细信息,请参阅编译器错误输出 :太模糊无法解决任何问题;
  • Ant:编译失败; 有关详细信息,请参阅编译器错误输出 :无答案…
  • 等等

我想你正在寻找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"作用。 如果它关闭,则不会获得行号。

当java编译器本身无法启动时,也会出现此问题。 例如,当定义的堆太大时。 Intellij的java2任务将显示信息

 Using external javac compiler Compilation arguments: ... '-J-Xmx1600m' ... Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. 

以及build.xml文件中的原因,在我的情况下:

  

您应该添加属性debug

 
		      	

用这个

      

我收到相同的错误消息,没有进一步的信息。 问题最终导致我的.jar文件之一被破坏了。 替换.jar文件解决了这个问题。