如何在运行时rt上不运行exec的情况下初始化Process proc?

时间:2019-06-11 00:57:08

标签: java

我的IDE抱怨它不知道proc是否已初始化:

Process proc

这是抱怨的,因为proc的初始化是在try范围内进行的:

// Runtime Getter
        Runtime rt = Runtime.getRuntime();
        BufferedReader stdInput;
        BufferedReader stdError;

        // Get output for this executable
        String[] commands = {"system.exe","-get t"};
        Process proc;
        try{
            proc = rt.exec(commands);
            stdInput=new BufferedReader(new InputStreamReader(
                    proc.getInputStream()));
            stdError=new BufferedReader(new InputStreamReader(
                    proc.getErrorStream()));

        }catch(IOException e){}

将所有抱怨的内容放在try块中是否不好?还有另一种更好的方法吗?

1 个答案:

答案 0 :(得分:1)

快速的技巧是在声明它时将其设置为null。

但是,您应该最小化变量的范围,并假设未在该try-catch块之外使用proc,则应同时声明和分配它。

如果在块外使用它,则必须处理在try-catch后它为null的情况-仅忽略IOException是个好主意。