자바 액세스 레 지 스 트
1.JDK 가 제공 하 는 Preferences 클래스 사용
우선 Preferences 의 대상 을 받 습 니 다.이 대상 은 레 지 스 트 의 어느 위치 에 정 보 를 기록 해 야 하 는 지,즉 노드 를 규정 합 니 다.그리고 put(String key,String value)또는 putInt(),tDouble()등 으로 관련 항목 에 값 을 부여 합 니 다.다음은 데모 프로그램 입 니 다.
- import java.util.prefs.Preferences;
-
- public class TestPrefs {
-
- String[] keys = {"version", "initial", "creator"};
- String[] values = {"1.3", "ini.mp3", "[email protected]"};
-
- //
- public void writeValue() {
- // HKEY_LOCAL_MACHINE\Software\JavaSoft\prefs .
- Preferences pre = Preferences.systemRoot().node("/javaplayer");
- for (int i = 0; i < keys.length; i++) {
- pre.put(keys[1], values[1]);
- }
- }
-
- public static void main(String[] args) {
- TestPrefs reg = new TestPrefs();
- reg.writeValue();
- }
- }
위의 코드 를 실행 하면 레 지 스 트 에 있 는 HKEYLOCAL_MACHINE\\Software\JavaSoft\prefs\\javaplayer 항목 에 관련 값 을 기록 하 였 습 니 다.
마지막 으로 몇 가 지 를 더 설명 하 겠 습 니 다.
1:당신 의 노드 의 이니셜 은 대문자 로 쓰 지 마 세 요.그렇지 않 으 면 등록 표 의 항목 앞 에'/'를 추가 합 니 다.
2:레 지 스 트 의 값 도 XML 파일 에 가 져 올 수 있 습 니 다.구체 적 인 방법 은 관련 문 서 를 보십시오.
3:코드 에 있 는 Preferences pre=Preferences.systemRoot().node("/javaplayer")를 사용 하면;Preferences pre=Preferences.userRoot().node("/javaplayer")로 바 꾸 기;그 에 상응하는 HKEYLOCAL_MACHINE 는 HKEY 가 됩 니 다.LOCAL_USER。
2.jRegistry 로 등록 표를 조작 합 니 다.
jRegistry 는 JNI 로 WINDOWS 레 지 스 트 API 를 패키지 하여 자바 개발 자가 windows 레 지 스 트 에 접근 하 는 것 을 편리 하 게 합 니 다.먼저 jRegistryKey.jar 와 jRegistryKey.dll 을 소개 합 니 다.이 두 파일 은 jRegistry 를 사용 하여 레 지 스 트 리 를 조작 하 는 데 필요 한 파일 입 니 다.하 나 는 jar 가방 이 고 자바 류 를 포함 한 파일 입 니 다. 하 나 는 동적 링크 라 이브 러 리 파일 로 레 지 스 트 에 접근 하 는 데 필요 한 로 컬 코드(즉 C/C++)를 제공 합 니 다.
다음은 사용 절 차 를 상세 하 게 소개 한다.
1.JBuilder 의 메뉴 Project->Project Properties->Required Libraries 에 jRegistryKey.jar 를 추가 하거나 환경 변수 classpath 에 이 jar 파일 을 추가 합 니 다.
2.jRegistryKey.dll 을 프로젝트 의 현재 디 렉 터 리 에 두 기;
3.방문 등록 표 류 에서 import 이 문 구 는 import ca.beq.util.win 32.registry.*;이 가방 에는 레 지 스 트 리 키 와 레 지 스 트 리 밸 류 두 가지 종류 가 있다.그 중에서 Registry Key 는 레 지 스 트 키 의 자바 로 creat()와 delete()방법 으로 key 를 만 들 고 삭제 하 며 하위 키 와 값,set 와 get 키 의 값 등 을 제공 합 니 다.RegistryValue is the Java? representation of a registry value (defined as a name, a type, and data).
4、새 키 만 들 기:RegistryKey r=new RegistryKey(RootKey.HKEYCURRENT_USER, "Software\\BEQ Technologies");r.create();
5、키 만 들 기:RegistryKey r=new RegistryKey(RootKey.HKEYCURRENT_USER, "Software");r.createSubkey("BEQ Technologies");
6.존재 하 는 키 를 삭제 합 니 다:
try {
RegistryKey r = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\BEQ Technologies");
r.delete();
} // try
catch(RegistryException re) {
re.printStackTrace();
} // catch
7,매 거 진 하위 키:RegistryKey r=new RegistryKey(RootKey.HKEYCURRENT_USER, "Software");if(r.hasSubkeys()) { Iterator i = r.subkeys(); while(i.hasNext()) { RegistryKey x = (RegistryKey)i.next(); System.out.println(x.toString()); } // while} // if
8.레 지 스 트 리 에 있 는 키 의 값 읽 기:RegistryKey r=new RegistryKey(RootKey.HKEYCURRENT_USER, "Software\\BEQ Technologies");if(r.hasValue("myValue")) { RegistryValue v = r.getValue("myValue"); System.out.println(v.toString());//} // if
주:v.toString()은 my Value 에 대응 하 는 키 값 일 뿐,my Value 키 에 대응 하 는 값 데 이 터 를 얻 으 려 면 String str=v.getDate().toSting()이 필요 합 니 다.
9.레 지 스 트 리 에 있 는 키 의 값 설정:RegistryKey r=new RegistryKey(RootKey.HKEYCURRENT_USER, "Software\\BEQ Technologies");RegistryValue v = new RegistryValue("myVal", ValueType.REG_SZ, "data");r.setValue(v);
10.특정한 키 의 모든 값 을 매 거 합 니 다:
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
다음은 데모 프로그램 입 니 다.참고 하 시기 바 랍 니 다.
// create a new key, "Test", under HKLMRegistryKey r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "Test");if(!r.exists()) {r.create();} // if // create value entriesRegistryValue 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); // read value entriesIterator i = r.values();while(i.hasNext()) {v = (RegistryValue)i.next();System.out.println(v.toString());} // while // delete registry keyr.delete();
다음으로 이동:http://www.cnblogs.com/webcyz/archive/2011/01/07/1929298.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.