Я пытаюсь написать раздел реестра в следующем пути в реестре:
HKEY_CURRENT_USER → Программное обеспечение → TestApp
В настоящее время я делаю:
public static void main(String[] args)
{
Preferences p = Preferences.userRoot().node("/HKEY_CURRENT_USER/Software/TestApp");
p.put("TestKey", "TestValue");
}
Но он записывает его в HKEY_CURRENT_USER → Программное обеспечение → JavaSoft → Prefs ->/H/K/E/Y_/C/U/R/R/E/N/T/_/U/S/E/R - > Программное обеспечение → Тест/приложение
Как заставить его следовать абсолютному пути и почему он добавляет лишние косые черты?
Вы можете взглянуть на это красивое сообщение в блоге о чтении/записи реестра
Я могу обратить ваше внимание на этот отрывок кода:
/** * Write a value in a given key/value name * @param hkey * @param key * @param valueName * @param value * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException */ public static void writeStringValue (int hkey, String key, String valueName, String value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { if (hkey == HKEY_LOCAL_MACHINE) { writeStringValue(systemRoot, hkey, key, valueName, value); } else if (hkey == HKEY_CURRENT_USER) { writeStringValue(userRoot, hkey, key, valueName, value); } else { throw new IllegalArgumentException("hkey=" + hkey); } }
Я думаю, что это решение очень элегантно в onder для управления операциями чтения/записи с реестром.
Как заставить его следовать абсолютному пути
Вы можете использовать отражение для доступа к приватным методам в классе java.util.prefs.Preferences. Подробнее см. В этом ответе: qaru.site/questions/24918/...
Тем не менее, я не рекомендую использовать этот подход, поскольку он может сломаться в любое время.
почему он добавляет лишние косые черты?
Посмотрите на этот ответ: qaru.site/questions/546655/...
Ключи реестра сохраняются в любом случае, но не учитывают регистр. Например, если у вас есть ключ "Rbi", вы не можете сделать другой ключ с именем "RBi". Случай сохраняется, но игнорируется. Решение Sun для чувствительности к регистру заключалось в добавлении косых черт к ключу.