ProcessBuilderを使用してシステムコールから値を抽出する際に2度目の問題が発生しました。
前回電話を使用したとき:
try {
String[] cmd = new String[5];
cmd[0] = "reg";
cmd[1] = "query";
cmd[2] = key;
cmd[3] = "/v";
cmd[4] = name;
ProcessBuilder pb = new ProcessBuilder(cmd);
Process process = pb.start();
StreamReader reader = new StreamReader(process.getInputStream());
reader.start();
int exitValue = process.waitFor();
reader.join();
if (exitValue != 0) {
return null;
}
String result = reader.getResult();
int p = result.indexOf(REGSTR_TOKEN);
if (p == -1) {
return null;
}
return result.substring(p + REGSTR_TOKEN.length()).trim();
} catch (Exception e) {
return null;
}
Windowsレジストリから値を抽出します。
ただし、コマンドラインから呼び出しを行った場合とは異なり、値は常にエラーを返します。環境変数が異なることがわかります。
どうしたの?環境変数を設定する必要がありますか?