web-dev-qa-db-ja.com

Java環境設定はWindows 7に保存されていますか?

一部のアプリで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 );
    }
}

実際に書き込みます(出力にコメントを付けて再度実行すると動作します)が、レジストリに新しいキーが表示されません。

また、これはどこにも文書化されていないようです。前もって感謝します。

EDIT#1これが重要な唯一の理由は、実行される環境に応じて設定が変更されることです。そうは言っても、レジストリキーを手動で挿入し、いくつかのチェックを行うことにより、その環境をシミュレートすることがしばしば有用です。

私は管理者として実行していましたが、レジストリ内のキーが予想される場所に表示されませんでした。

47
javamonkey79

現在のユーザーの下にあります:HKEY_CURRENT_USER\Software\JavaSoft\Prefs

54
AlexR

systemRootの場合:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\...

userRootの場合:

HKEY_CURRENT_USER\SOFTWARE\JavaSoft\...
25
bestsss

SystemRootの設定を操作し、レジストリモニターの助けを借りて同様の問題が発生しました。Windowsオペレーティングシステムが32ビットか64ビットかによって、保存場所が変わることがわかりました。

32ビットOS(Windowsの場合、Windows XP)では、systemRootレジストリパスは

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs

64ビットOS(私の場合はWindows 7)では、systemRootレジストリパスは

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Prefs

同じ32ビットJRE(JRE 1.6.0_20-b02)が両方のシステムで使用されました。

64ビットWindowsで32ビットアプリケーション(JVM)を実行すると、レジストリは自動的にWow6432Nodeパス要素を挿入し、32ビットまたは64ビット用にコンパイルされたアプリケーションが同じマシン上で共存できるようにします。個別の設定。

15

一部の設定はレジストリキーに保存されますが、他の設定(今はどの設定を正確に確認します)がテキストファイルに保存されているようです。たとえば、「ブラウザのキーストアで証明書とキーを使用する」という設定は、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ビットで検証されました-JRE 1.7.0_60(i586)

ソース:
このサイトの関連質問
Oracle-Java SEドキュメント-デプロイメント設定ファイルとプロパティ

良い一日を

1
Edgar Grill