我已经能够从一个java程序编译一个python程序。我正在捕获在 python 程序中发现的错误并将其打印在控制台中。我没有一口气得到 .py 文件中的所有错误。我必须更正上一个错误并再次运行它以获取下一个错误。以下是我在控制台中获得的示例:
我只需要捕获行号和语法错误,例如:品脱。
这是我的程序示例,其中 log 是字符串,其中包含有关找到的错误的详细信息:
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;
}}
任何人都可以帮助仅提取行号和语法错误并将其存储在数组中吗?