我一直在閱讀鍵和值通過執行「reg查詢」,但幾天前它停止工作。我沒有改變任何代碼。 讀一個鍵值仍然正常工作:Java:閱讀Windows註冊表鍵停止工作
Process process = Runtime.getRuntime().exec(
"reg query " + "\"" + root + key + "\" /v " + valueName);
InputStreamReader inputreader = new InputStreamReader(
process.getInputStream());
BufferedReader reader = new BufferedReader(inputreader);
process.waitFor();
String line = null;
while ((line = reader.readLine()) != null) {
if (line.contains("REG_SZ")) {
Pattern pattern = Pattern.compile("REG_SZ\\s*(.*)");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
return line.substring(matcher.start(1));
}
} else if (line.contains("REG_DWORD")) {
Pattern pattern = Pattern.compile("REG_DWORD\\s*(.*)");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
return line.substring(matcher.start(1));
}
}
}
但process.waitFor(讀取密鑰時)永遠不會返回。這工作,直到前幾天:
Process process = Runtime.getRuntime().exec(
"reg query " + "\"" + root + key + "\"");
InputStreamReader inputreader = new InputStreamReader(
process.getInputStream());
BufferedReader reader = new BufferedReader(inputreader);
process.waitFor();
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(">>"+line);
if (line.contains(root)) {
list.add(line.substring(line.lastIndexOf('\\') + 1));
}
}
String[] keys = new String[list.size()];
return list.toArray(keys);
如果我運行使用Windows命令行,它工作正常的查詢,所以我有一個服務器上運行的小程序這不是我的查詢這是錯誤的...... ,但兩天前,我們的外部測試人員報告說,這個小程序是凍結的。但它仍然爲我和我的同事工作。今天早上它也凍結了我也一直沒有工作,因爲...
這幾天發生了什麼?瀏覽器更新,操作系統更新,補丁安裝?可能是從反病毒到操作系統補丁到瀏覽器更新的任何內容。 – Ali