Java进阶:在SE6中调用编译器的两种方法[3]
Java进阶:在SE6中调用编译器的两种方法[3]
![Java进阶:在SE6中调用编译器的两种方法[3]](http://img.zhputi.com/uploads/e99c/e99c2489b501bef64805899a9af65bec28067.jpg)
如果想得到具体的编译错误 可以对Diagnostics进行扫描 代码如下
for (Diagnostic diagnostic : diagnostics getDiagnostics()) System out printf( Code: %s%n + Kind: %s%n + Position: %s%n + Start Position: %s%n + End Position: %s%n + Source: %s%n + Message: %s%n diagnostic getCode() diagnostic getKind() diagnostic getPosition() diagnostic getStartPosition() diagnostic getEndPosition() diagnostic getSource() diagnostic getMessage(null));
被编译的test java代码如下
public class test { public static void main(String[] args) throws Exception { aa; //错误语句 System out println( JavaCompiler测试成功! ); } }
在这段代码中多写了个aa 得到的编译错误为
Code: piler err not stmt Kind: ERROR Position: Start Position: End Position: Source: test java Message: test java: : 不是语句 Success: false
lishixinzhi/Article/program/Java/hx/201311/27243