본문 바로가기

Programming/JAVA

윈도우 레지스트리 내용 다루기

자바에서 윈도우 레지스트리 내용 읽어 오기

자바 프로그램을 이용하여 윈도우 시스템의 레지스트리를 다루거나 어떤 프로그램을 윈도우의 서비스에 등록 또는 해제 하는 기능 등을 구현 할 수 있습니다.

이러한 것이 가능 하기 위해서는 관련 Library를 다운 받아 JNI를 이용하면 가능 한데 다음과 같이 하시면 됩니다.

우선
http://sourceforge.net/project/showfiles.php?group_id=70882&release_id=133472 에서 jst1.2.zip 파일을 다운 받아 압축을 해제 하면 jst.dll 과 jst.jar 파일이 나옵니다.

각 파일이 하는 일은 dll인 경우 윈도우 레지스트리를 직접 핸들링 하는 JNI를 위한 구현부가 들어 있으며, jar 파일인 경우 그 DLL을 사용하여 레지스트리를 다루기 위한 Java API 패키지 입니다.

jst.dll은 windows아래 system32에 복사 하시구요, jar 파일은 자바홈/jre/lib/ext 폴더에 위치 시킵니다.

아래 예제는 윈도우 시스템의 레지스트리에서 ORACLE_HOME이라는 값을 읽어 오는 예제 입니다.

[RegistryTest.java]

/*
* Created on 2005. 1. 7
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/

/**
* @author 이종철
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import com.jobjects.jst.*;

public class RegistryTest {

        public static void main(String[] args) throws Exception {
                if (!SystemToolkit.doesSupportRegistry()) {
                        System.out.println("레지스트리 다루는 것을 지원 하지 않습니다");
                        return;
                }
               
                RegistryManager rm = SystemToolkit.getRegistryManager();
               
                int top = RegistryKey.KEY_LOCAL_MACHINE;
               
                String sub = "SOFTWARE\\ORACLE";
                String prop = "ORACLE_HOME";
               
                RegistryKey rk = rm.openRegistryKey(top, sub);
               
                System.out.println("오라클 홈디렉토리 -->" + rk.getStringProperty(prop));        
               
                //이번에는 새로운 값을 setting 합니다. NLS_LANG을 setting 해 볼까요...
                prop = "NLS_LANG";
                rk.putStringProperty(prop,"KOREAN_KOREA.KO16KSC5601");
               
                System.out.println("NLS_LANG -->" + rk.getStringProperty(prop));                                        
               
                //이번에는 위에서 Setting한것을 삭제 합니다.
                //rk.removeStringProperty(prop);
               
        }
}

[결과]
오라클 홈디렉토리 -->C:\oracle\ora92
NLS_LANG -->KOREAN_KOREA.KO16KSC5601 

 

'Programming > JAVA' 카테고리의 다른 글

Garbage Collector 호출하기  (0) 2008.04.28
OutOfMemory 해결법  (0) 2008.04.28
JBuilder에서 CVS 소스버전 콘트롤  (0) 2008.04.28
Sort 알고리즘(삽입정렬)  (0) 2008.04.28
Sort 알고리즘(버블정렬)  (0) 2008.04.28