Мы используем настройки 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 Единственная причина, по которой это имеет значение, заключается в том, что параметр изменяется в зависимости от среды, в которой он используется. При этом часто бывает полезно смоделировать эту среду, вставив ключи реестра вручную, а затем выполнив некоторую проверку.
Я работал как администратор, но я не видел ключей в реестре, где я ожидал, что они будут.