JavaプログラムからPythonプログラムをコンパイルできました。Python プログラムで見つかったエラーをキャプチャして、コンソールに出力しています。一度に .py ファイル内のすべてのエラーを取得できません。次のエラーを取得するには、前のエラーを修正して再度実行する必要があります。以下は、コンソールに表示されるサンプルです。
行番号と構文エラーのみをキャプチャする必要があります。例: pint.
ログが見つかったエラーの詳細を保持する文字列である私のプログラムのサンプルを次に示します。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Python_Compiler {
public static void main(String args[]){
String ret = compile();
System.out.println(ret);
}
public static String compile()
{
String log="";
String myDirectory = "C:\\";
try {
String s= null;
//change this string to your compilers location
Process p = Runtime.getRuntime().exec("cmd /C python Hello.py", null, new java.io.File(myDirectory));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
boolean error=false;
log+="";
while ((s = stdError.readLine()) != null) {
log+=s;
error=true;
log+="\n";
}if(error==false) log+="Compilation Successful !!!";
} catch (IOException e) {
e.printStackTrace();
}
return log;
}
public int runProgram()
{
int ret = -1;
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("cmd.exe /c start a.exe");
proc.waitFor();
ret = proc.exitValue();
} catch (Throwable t)
{
t.printStackTrace();
return ret;
}
return ret;
}}
行番号と構文エラーのみを抽出して配列に格納するのを手伝ってくれる人はいますか?