我正在使用java創建一個編譯器程序,我讓它編譯java文件,並且我找到了發生了什麼錯誤以及發生了哪一行。我的問題是,當它打印出這些信息時,我在輸出的中間加載了///////////
,我不明白爲什麼這樣!Java:使用diagnostics.getDiagnostics()來查找錯誤
我的輸出是
Error on line 4 in ////////////////////////////////////////////////////////////////////////////////////////////.java:4: error: class ToCompileTwo is public, should be declared in a file named ToCompileTwo.java
public class ToCompileTwo {
這是我用得到這個顯示的代碼
for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
System.out.format("Error on line %d in %s", diagnostic.getLineNumber(), diagnostic);
}
編輯
我設法解決這個問題,下面的方法是什麼正在創建////////
protected DynamicJavaSourceCodeObject(String name, String code) {
super(URI.create("string:///" + name.replaceAll(".", "/") + Kind.SOURCE.extension), Kind.SOURCE);
this.qualifiedName = name;
this.sourceCode = code;
}
我改變了第二行
super(URI.create("string:///" + name.replaceAll("\\\\", "/")), Kind.SOURCE);
當你做你name.replaceAll(".", "/")
全部/
更換這個固定的問題
我們可以看到Diagnostic的toString()方法的來源嗎? – nullpotent
您如何生成您正在編譯的源代碼,具體來說,您使用的是哪種文件管理器?斜槓是「文件名」。 –