初始化进程时的java.io.IOexception

时间:2015-09-01 15:12:15

标签: java process exe bufferedreader processbuilder

编译此代码时,初始化进程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()));

1 个答案:

答案 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"); 
     }