java.io.IOexception 初始化进程时

java.io.IOexception when initializing a process

当我编译这段代码时,在初始化进程 p 时出现 java.io.IOexception 错误。但是,如果我将它放在 try catch 块中,当我尝试在下面的行中使用它时,我会收到一条错误消息,提示无法找到该变量。有没有办法绕过 try catch 块?

我正在尝试 运行 一个可执行文件,它将一个 par 文件作为参数,并将该可执行文件的输出保存到一个 txt 文件中。

import java.io.*;
import java.util.*;

public class Class{
public static void main (String[] args)
 {

 ProcessBuilder pb = new ProcessBuilder("C:\....\c.exe",    "C:\.....\w.par");

Process p = pb.start();

BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

如果您尝试在 try-catch 块中初始化变量,它不会 "found" 超出 try-catch 块的范围。修改成这样:

 import java.io.*;
 import java.util.*;

 public class Class{

     public static void main (String[] args) {
     ProcessBuilder pb = null;
     Process p = null;

     try {
     ProcessBuilder pb = new ProcessBuilder("C:\....\c.exe", "C:\.....\w.par");

     Process p = pb.start();

     BufferedReader stdInput = new BufferedReader(newInputStreamReader(p.getInputStream()));
     } catch (IOException | ProcessException e) {
         System.err.println("Some error message"); 
     }