Ant Javac 编译输出



我正在尝试使用org.apache.tools.ant.taskdefs.Javac从java程序编译java文件并将其输出打印在屏幕上。

请参阅下面的代码片段供您参考,

Javac javaCompile = (Javac) webServiceProject.createTask("javac");
javaCompile.setSrcdir("D:\Java\src");
javaCompile.setDestdir("D:\Java\classes");
try{
    javaCompile.execute();
}catch (BuildException buildException){
    FacesMessage message = new FacesMessage(buildException.getMessage());
    message.setSeverity(FacesMessage.SEVERITY_FATAL);
    FacesContext.getCurrentInstance().addMessage(null, message);
}

当我使用上述代码编译文件时,如果存在任何编译错误,我会收到一条消息"Compile failed; see the compiler error output for details.".

我不知道如何检索编译错误并将其显示为屏幕上的输出。任何人都可以建议如何检索它吗?

忽略是否

应该在 JSF 应用程序中编译代码的问题......

我相信 Ant 将编译输出发送到记录器。 因此,要掌握它,您需要配置记录器以将相关的日志事件发送到文件......什么的。

尝试更改 build.compiler 设置。Ant 在查找我指定的编译器"org.eclipse.jdt.core.JDTCompilerAdapter"时遇到了麻烦 - 将其更改为"现代"允许我进行编译。

这很难追踪。我不确定为什么没有输出。

下面的代码做了这个技巧,这让我检索了编译器错误。

Javac javaCompile = (Javac) webServiceProject.createTask("javac");
javaCompile.createCompilerArg().setValue("-Xstdout");
String filePath = basePath + "resources" + File.separator
        + "errorlog.log";
javaCompile.createCompilerArg().setFile(new File(filePath));
javaCompile.setNowarn(true);

相关内容

  • 没有找到相关文章