Java 언어에서 레지스트리 생성, 삽입, 삭제, 수정 방법Java 언어에서 레지스트리 생성, 삽입, 삭제, 수정 방법

Posted at 2011. 5. 13. 17:19 | Posted in 카테고리 없음
import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;

public class Test {
	private static String regPath;
	private static String regName;
	private static String regValue;
	
	Test() {
		regPath = null;
		regName = null;
		regValue = null;
	}
	
	public static void main(String args[]) {
		// 경로, 이름, 데이터 변수 초기화
		regPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
		regName = "MyProgram";
		regValue = "\"C:\\Program Files\\SetReg\\SetReg.jar\" /autorun";
		
		// 시스템 사용자 이름 출력
		System.out.println("Your Name is " + Advapi32Util.getUserName() + ".");

		// 레지스트리 키 생성
		Advapi32Util.registryCreateKey(WinReg.HKEY_CURRENT_USER, regPath, regName);
		
		// 레지스트리 값 설정
		Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, regPath, regName, regValue);
		
		// 레지스트리 값 읽기
		System.out.println(Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, regPath, regName)); 
		
		// 레지스트리 값 삭제
		Advapi32Util.registryDeleteValue(WinReg.HKEY_CURRENT_USER, regPath, regName);
		
		// 레지스트리 키 삭제(값 삭제가 선행)
		Advapi32Util.registryDeleteKey(WinReg.HKEY_CURRENT_USER, regPath, regName); 
	}
}
다음은 Java 언어에서 레지스트리를 생성, 삽입, 삭제 그리고 수정하는 방법이다. 구글 검색을 통해 다양한 방법을 찾아보았지만 각자 나름의 장단점이 있었다. 그 중에서 가장 마음에 드는 것은 JNA(Java Native Access)를 사용하여 레지스트리를 접근하는 방법이다. Advapi32Util 클래스를 사용하여 레지스트리를 조작할 수 있다. Java에서 기본적으로 레지스트리를 조작하기 위해 제공해주는 클래스가 있지만 이 클래스는 레지스트리 트리의 Root 접근이 불가능하다. 아마도 보안 문제이기 때문에 그러한 것이라 생각한다.
//