Где хранятся настройки Java в Windows 7? - PullRequest
45 голосов
/ 09 февраля 2011

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

Я работал как администратор, но я не видел ключей в реестре, где я ожидал, что они будут.

Ответы [ 4 ]

53 голосов
/ 09 февраля 2011

Они под текущим пользователем: HKEY_CURRENT_USER\Software\JavaSoft\Prefs

24 голосов
/ 09 февраля 2011

для systemRoot:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\...

для пользователя Root:

HKEY_CURRENT_USER\SOFTWARE\JavaSoft\...
15 голосов
/ 15 января 2013

У меня была похожая проблема, когда я работал с настройками systemRoot и с помощью монитора реестра обнаружил, что место, где они хранятся, меняется в зависимости от того, является ли операционная система Windows 32-разрядной или 64-разрядной.

Под 32-битной ОС (в моем случае Windows XP) путь к реестру systemRoot был

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs

Под 64-битной ОС (в моем случае Windows 7) путь реестра systemRoot был

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Prefs

В обеих системах использовался один и тот же 32-разрядный JRE (JRE 1.6.0_20-b02).

При запуске 32-разрядного приложения (JVM) в 64-разрядных окнах реестр автоматически вставляет элемент пути Wow6432Node, чтобы позволить приложениям, скомпилированным для 32-разрядных или 64-разрядных приложений, сосуществовать на одном компьютере. сохраняя их настройки отдельно.

1 голос
/ 12 июня 2014

Некоторые параметры хранятся в ключах реестра, в то время как некоторые другие (сейчас я собираюсь проверить, какие именно) хранятся в текстовых файлах; например, параметр «Использовать сертификаты и ключи в хранилище ключей браузера» хранится в C:\Users\%USER%\AppData\LocalLow\Sun\Java\Deployment\deployment.properties:

#deployment.properties
#Thu Jun 12 15:26:53 CEST 2014

deployment.security.browser.keystore.use=false

deployment.modified.timestamp=1402579613914
deployment.version=7.21
deployment.browser.path=C\:\\Program Files\\Mozilla Firefox\\firefox.exe
#Java Deployment jre's
#Thu Jun 12 15:26:53 CEST 2014
deployment.javaws.jre.0.registered=true
deployment.javaws.jre.0.platform=1.7
deployment.javaws.jre.0.osname=Windows
deployment.javaws.jre.0.path=C\:\\Program Files\\Java\\jre7\\bin\\javaw.exe
deployment.javaws.jre.0.product=1.7.0_60
deployment.javaws.jre.0.osarch=x86
deployment.javaws.jre.0.location=http\://java.sun.com/products/autodl/j2se
deployment.javaws.jre.0.enabled=true
deployment.javaws.jre.0.args=

Это было проверено в Windows 7 pro / 32 bit - JRE 1.7.0_60 (i586)

Источники:
Похожие вопросы на этом сайте
Oracle - документация по Java SE - Файл конфигурации развертывания и свойства

Хорошего дня

...