Javaを使用してコンパイラプログラムを作成しています。Javaファイルをコンパイルしています。どのエラーが発生したか、どの行で発生したかを調べています。私の質問は、この情報を印刷しているときに///////////
、出力の途中で負荷がかかり、これがなぜなのか理解できないということです!
私の出力は
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;
}
2行目を次のように変更しました
super(URI.create("string:///" + name.replaceAll("\\\\", "/") ), Kind.SOURCE);
これで問題が解決しました