我已经能够从java程序编译python程序。我正在捕获python程序中发现的错误并将其打印在控制台中。 我没有一次性得到.py文件中的所有错误。 我必须更正以前的错误并再次运行以获取下一个错误。以下是我在控制台中获得的示例:
我只需捕获行号和语法错误,例如:pint。
以下是我的程序示例,其中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;
}}
任何人都可以帮助只提取行号和语法错误并将其存储在数组中吗?
答案 0 :(得分:0)
所以你想要捕获3号的行号和prit的错误。