编译此代码时,初始化进程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()));
答案 0 :(得分:0)
如果您尝试初始化try-catch块中的变量,则不会在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");
}