Disect从Eclipse中编译Python文件返回的日志

时间:2013-03-03 16:50:46

标签: java python eclipse string

我已经能够从java程序编译python程序。我正在捕获python程序中发现的错误并将其打印在控制台中。 我没有一次性得到.py文件中的所有错误。 我必须更正以前的错误并再次运行以获取下一个错误。以下是我在控制台中获得的示例: enter image description here

我只需捕获行号和语法错误,例如: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;                      
        }}

任何人都可以帮助只提取行号和语法错误并将其存储在数组中吗?

1 个答案:

答案 0 :(得分:0)

所以你想要捕获3号的行号和prit的错误。