私の .java ファイルは一連のコードで構成されており、各行のサイズは可変です。.java ファイルを以下に示します。
public class MyC{
public void MyMethod()
{
System.out.println("My method has been accessed");
System.out.println("hi");
String l;
int x=0;
}
}
簡単に言えば、私がやりたいことは、エラーの .java ファイルをスキャンし、エラーを文字列にキャプチャすることです。診断コレクターを使用して、エラーの開始位置と終了位置をキャプチャしました。
7 行目でエラーを犯したとします。 in x=0; Diagnostic Collector は、たとえば 143-145 エラーが発生したなどの位置を返します。
行番号も取得しますが、返される位置は .java ファイル全体に対して相対的です。したがって、各行は可変長であり、位置はファイル全体に対して相対的であるため、行番号を使用しても意味がありません。ラインでのエラーの実際の位置を計算することは困難です。
また、前の行の最後の文字にエラーがない場合、前の行の最後の文字の終了位置を取得する方法はありません (例: 7 行目のエラー: 前の行 = 6 行目)。
javaファイルからその位置(開始と終了)を使用して文字列を取得する方法はありますか?