Runtime.getRuntime().exec 中的 NullPointerException 错误
NullPointerException error in Runtime.getRuntime().exec
我试图让一些进程来完成一项任务,我使用 Runtime.getRuntime().exec
并且任何进程从一个文件中读取一些长数字然后使用 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;
您的问题出在您的作业中:
Subprocess[0] = Runtime.getRuntime().exec(command);
你总是覆盖数组的第一个元素。
将 0 更改为 i
。
我试图让一些进程来完成一项任务,我使用 Runtime.getRuntime().exec
并且任何进程从一个文件中读取一些长数字然后使用 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;
您的问题出在您的作业中:
Subprocess[0] = Runtime.getRuntime().exec(command);
你总是覆盖数组的第一个元素。
将 0 更改为 i
。