Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试正则表达式匹配Processbuilder输出时出现异常_Java_Processbuilder - Fatal编程技术网

Java 尝试正则表达式匹配Processbuilder输出时出现异常

Java 尝试正则表达式匹配Processbuilder输出时出现异常,java,processbuilder,Java,Processbuilder,我有以下代码: private void GetInfo(String src) throws IOException{ Scanner scan = new Scanner(System.in); String filename = new File(src).getName(); ProcessBuilder builder = new ProcessBuilder("/Users/Daim/Desktop/proces

我有以下代码:

private void GetInfo(String src) throws IOException{

        Scanner scan = new Scanner(System.in);          
        String filename = new File(src).getName();

        ProcessBuilder builder = new ProcessBuilder("/Users/Daim/Desktop/process", src);
        builder.redirectErrorStream(true);
        Process process = builder.start();
        final InputStream is = process.getInputStream();

            new Thread(new Runnable() {
                String line;
                @Override
                public void run() {
                    try {
                        BufferedReader br = new BufferedReader(new InputStreamReader(is));
                        while ((line = br.readLine()) != null) {
                            System.out.println(line);
                        }

                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    Pattern p = Pattern.compile("least");
                    Matcher m = p.matcher(line);

                    //System.out.println("match");

                }

            }).start();
    }
由于“Matcher m=p.Matcher(line);”而获取异常:

线程“thread-1”java.lang.NullPointerException中的异常 位于java.util.regex.Matcher.getTextLength(Matcher.java:1234) 位于java.util.regex.Matcher.reset(Matcher.java:308) 位于java.util.regex.Matcher.(Matcher.java:228) 位于java.util.regex.Pattern.matcher(Pattern.java:1088) 售价为Wds$2.run(Wds.java:152) 运行(Thread.java:722)
为什么我会得到这个例外?我猜这是因为变量行忙?

line
为空时,在循环后调用此行

Matcher m = p.matcher(line);

您应该将此行添加到循环中。

为空时,将在循环后调用此行

Matcher m = p.matcher(line);

您应该将此行添加到循环中。

您的
while
循环仅在
为空时停止循环

Matcher m = p.matcher(line);

您不能调用null的
matcher()

您的
while
循环仅在
为null时停止循环

Matcher m = p.matcher(line);
不能调用null的
matcher()