一部のアプリで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これが重要な唯一の理由は、実行される環境に応じて設定が変更されることです。そうは言っても、レジストリキーを手動で挿入し、いくつかのチェックを行うことにより、その環境をシミュレートすることがしばしば有用です。
私は管理者として実行していましたが、レジストリ内のキーが予想される場所に表示されませんでした。
現在のユーザーの下にあります:HKEY_CURRENT_USER\Software\JavaSoft\Prefs
systemRootの場合:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\...
userRootの場合:
HKEY_CURRENT_USER\SOFTWARE\JavaSoft\...
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ビット用にコンパイルされたアプリケーションが同じマシン上で共存できるようにします。個別の設定。
一部の設定はレジストリキーに保存されますが、他の設定(今はどの設定を正確に確認します)がテキストファイルに保存されているようです。たとえば、「ブラウザのキーストアで証明書とキーを使用する」という設定は、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ドキュメント-デプロイメント設定ファイルとプロパティ
良い一日を