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()