【问题标题】:java.io.IOexception when initializing a process初始化进程时出现 java.io.IOexception
【发布时间】:2015-09-01 15:12:15
【问题描述】:

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

【问题讨论】:

  • 您可以将throws IOException 添加到您的main 方法的签名中。

标签: java process exe bufferedreader processbuilder


【解决方案1】:

如果您尝试在 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"); 
     }

【讨论】:

    猜你喜欢
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多