Мы используем настройки Java в некоторых наших приложениях и особо не замечали этого, поскольку утилита, которая выполняет вызовы, довольно старая и была написана еще во времена Windows XP. Но похоже, что настройки Java больше не хранятся в реестре Windows 7 - или они хранятся где-то в другом месте.
Я ожидаю, что это будет в:
HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Prefs
Но я не вижу его там.
Что делает его более странным, так это то, что когда я запускаю это приложение:
public static void main( final String[] args ) throws BackingStoreException {
Preferences systemRoot = Preferences.systemRoot();
Preferences preferences = systemRoot.node( "com/mycompany/settings" );
systemRoot.put( "foo", "bar" );
systemRoot.put( "baz", "lolz" );
System.out.println( "-------------------------------" );
String[] keys = preferences.keys();
for( String key : keys ) {
System.out.println( key );
}
System.out.println( "-------------------------------" );
keys = systemRoot.keys();
for( String key : keys ) {
System.out.println( key );
}
}
Оно на самом деле пишет (я могу прокомментировать вставку и запустите его снова, и он заработает), но я не вижу новых ключей в реестре.
Кроме того, я нигде не могу увидеть это задокументировано. Заранее спасибо.
РЕДАКТИРОВАТЬ # 1 Единственная причина, по которой это имеет значение, состоит в том, что настройки меняются в зависимости от того, в какой среде он запущен. При этом часто бывает полезно смоделировать эту среду, вставив ключи реестра вручную, а затем выполнив некоторую проверку.
Я работал как администратор, но я не видел ключи в реестре там, где я ожидал их найти.