この記事では、主に、Javaの好みとJregistryのレジストリを読み書きする2つの方法を研究しています。詳細は次のとおりです。
Javaプログラムは「一度書き、どこでも実行」であり、Javaを使用してレジストリを読み書きするため、プログラムのクロスプラットフォームの性質は貧弱です。 Javaのレジストリの操作は、JDK1.4以前のバージョンでは不可能であり、JNIでのみ実装できます。ただし、JDK1.4がWindowsレジストリを操作できた後に提供されるPREFSパッケージは、Rootはソフトウェア/JavaSoft/PREFSのみです。これはおそらくこのジレンマのためであり、いわゆるプラットフォームが無関係であることを確認し、全員のWindowsに依存していることを確認する必要があります。以下は、2つの側面からレジストリの動作を導入します。
まず、レジストリで情報を書きたい場所、つまりノードを指定する設定のオブジェクトを取得します。次に、put(string key、string value)またはputint()、tdouble()などを使用して、関連するアイテムに値を割り当てます。これがデモプログラムです。
java.util.prefs。*; public class Registery {string [] keys = {"version"、 "initial"、 "creator"}; string [] values = {"1.3"、 "ini.mp3"、 "[email protected]"}; //対応する値を変数に保存し、public void writeValue(){// hkey_local_machine/software/javasoft/prefsの下でレジストリ値を書き込みます。設定pre = prefience.systemroot()。node( "/javaplayer"); for(int i = 0; i <keys.length; i ++){pre.put(keys、values); }} public static void main(string [] args){Registery reg = new Registery(); reg.WriteValue(); }}上記のコードを実行し、hkey_local_machine/software/javasoft/prefs/javaplayerに関連する値をレジストリに書き込みます。
最後に、いくつかの点を説明させてください:
JregistryはJNIを使用してWindowsレジストリAPIをカプセル化します。これにより、Java開発者がWindowsレジストリにアクセスすることが容易になります。まず、jregistrykey.jarとjregistrykey.dllを紹介しましょう。これらの2つのファイルは、jregistryを使用してレジストリを操作するために必要です。1つはJARパッケージで、Javaクラスを含むファイルです。もう1つは動的リンクライブラリファイルで、レジストリ(C/C ++)にアクセスするために必要なローカルコードを提供します。
以下は、使用プロセスの詳細な紹介です。
コードを実装します
registrykey r = new registrykey(rootkey.hkey_current_user、 "software // beq technologies"); R.Create();
registrykey r = new registryKey(rootkey.hkey_current_user、 "software"); R.CreateSubkey( "Beq Technologies");
try {registrykey r = new registrykey(rootkey.hkey_current_user、 "software // beq technologies"); r.delete(); } // catch(registryexception re){re.printstacktrace(); } //キャッチ registrykey r = new registryKey(rootkey.hkey_current_user、 "software"); if(r.hassubkeys()){iterator i = r.subkeys(); while(i.hasnext()){registrykey x =(registrykey)i.next(); system.out.println(x.toString()); } // while} // if registrykey r = new registrykey(rootkey.hkey_current_user、 "software // beq technologies"); if(r.hasvalue( "myvalue"))){registryValue v = r.getValue( "myValue"); system.out.println(v.toString()); //} // if注:v.toString()は、キーMyValueに対応するキー値のみです。 myValueキーに対応する値データを取得するには、string str = v.getdate()。tosting();が必要です。
registrykey r = new registrykey(rootkey.hkey_current_user、 "software // beq technologies"); registryValue v = new registryValue( "myval"、valueType.reg_sz、 "data"); R.SetValue(v);
registrykey r = new registryKey(rootkey.hkey_current_user、 "software"); if(r.hasvalues()){iterator i = r.values(); while(i.hasnext()){registryValue v =(registryValue)i.next(); System.out.println(v.toString()); } // while} // if以下は、参照用のデモプログラムのみです。
// hklm registrykey r = new registrykey(rootkey.hkey_local_machine、 "test")の下で、新しいキー「テスト」を作成します。 if(!r.exists()){r.create(); } // if // valueエントリの作成registristerValue v = new registryValue( "Astring"、valueType.REG_SZ、 "TEST"); R.SetValue(v); v.setname( "adword"); v.setType(ValueType.REG_DWORD); v.setData(new Integer(0x1001001)); R.SetValue(v); //値エントリの読み取りiterator i = r.values(); while(i.hasnext()){v =(registryvalue)i.next(); System.out.println(v.toString()); } // while //レジストリキーr.delete();要約します
上記は、Javaの好みとJregistryのレジストリを読み書きの方法について簡単に議論することについてのこの記事の内容全体です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!