Я читал ключи и значения, выполняя «reg query», но несколько дней назад он перестал работать.Я не изменил ни одного кода.Чтение значения ключа по-прежнему работает нормально:
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, он работает нормально, так что это не мой запрос, это неправильно ... У меня запущен апплет на сервере,но два дня назад наши внешние тестеры сообщили, что апплет замерзает.Однако он все еще работал для меня и моих коллег.Этим утром у меня тоже замерзло, и с тех пор не работает ...