0

我已经能够从一个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;                      
        }}

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

4

1 回答 1

0

因此,您要捕获 3 的行号和 prit 的错误。

于 2013-03-03T17:04:15.233 回答