我正在尝试使用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);