Runtime.getRuntime()。exec中的NullPointerException错误

时间:2018-03-29 08:10:49

标签: java nullpointerexception runtime runtime.exec

我正在尝试制作一些进程来执行一项任务而我使用Runtime.getRuntime().exec并且任何进程从一个文件读取一些长数字然后使用xor操作数并写入另一个文件。最后主进程应该读取已生成的文件中的每个长数,并再次读取xor。 这是我的代码,但是当我运行它时,我得到包含Subprocess[i].waitFor() == 0的NullPointerException。为什么?谢谢你的帮助。我知道什么是NullPointerException,我不想问它!

    Process[] Subprocess;
    Subprocess = new Process[processCount];
    for (int i = 0; i < processCount; i++) {
        try {
            String[] command = {"java", "-cp", pathSubProcess, "SubProcess", p, String.valueOf(i), String.valueOf(processCount), String.valueOf(size)};
            Subprocess[0] = Runtime.getRuntime().exec(command);

        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
    /////////////////////////////////////////////////////////////////////////
    long xor = 1;
    for (int i = 0; i < processCount; i++) {
        if(Subprocess[i].waitFor() == 0){
            xor = xor ^  pp.readFiles(i);
        }
    }

   xor = xor ^ 1;

1 个答案:

答案 0 :(得分:2)

您的问题出在您的分配中:

Subprocess[0] = Runtime.getRuntime().exec(command);

您始终会覆盖数组的第一个元素。

将该0更改为i