http://2ry53.tistory.com/124
방화벽 인바운드 추가시
netsh advfirewall firewall add rule name="Test" dir=in action=allow program="c:\MyTest\test.exe" enable=yes
반대로 삭제 명령은
netsh advfirewall firewall delete rule name="Test" program="c:\MyTest\test.exe"
import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; public class TestGetRegInfoByPreferences { public static void main(String args[]) { final Preferences userRoot = Preferences.userRoot(); // final Preferences systemRoot = Preferences.systemRoot(); System.out.println("userRoot.absolutePath() : " + userRoot.absolutePath()); System.out.println("userRoot.name() : " + userRoot.name()); System.out.println("userRoot.toString() : " + userRoot.toString()); System.out.println("userRoot.isUserNode() : " + userRoot.isUserNode()); try { System.out.println("userRoot.childrenNames()"); String[] childrenNames = userRoot.childrenNames(); int lenChildrenNames = childrenNames.length; for (int i = 0; i < lenChildrenNames; i++) System.out.println("childrenNames[" + i + "] : " + childrenNames[i]); System.out.println("userRoot.keys()"); String[] keys = userRoot.keys(); int lenKeys = keys.length; for (int i = 0; i < lenKeys; i++) System.out.println("keys[" + i + "] : " + keys[i]); } catch (BackingStoreException bse) { bse.printStackTrace(); } } }
import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; public class TestPutRegInfoByPreferences { public static void main(String[] args) { final Preferences userRoot = Preferences.userRoot(); // final Preferences systemRoot = Preferences.systemRoot(); try { userRoot.node("Java"); userRoot.put("Version", "1.6.0"); userRoot.flush(); } catch (BackingStoreException bse) { bse.printStackTrace(); } } }
등록일 : 2003년 03월 12일
조회수 : 4,407간단히 말해 레지스트리는 운영체제와 프로그램에서 필요한 정보를 담고 있는 데이터베이스와 비슷하다고 할 수 있다. 일반적인 윈도우 프로그램들은 레지스트리에 접근 할 수 있지만 자바 프로그램에서는 접근 할 수 없었다. 그 이유는 "자바의 철학"에 위배 되기 때문일 것이다. 자바 프로그램은 모든 운영체제에서 실행 가능 해야 하는데 '윈도우에만 존재하는 레지스트리'라는 것을 지원하지 않는 것은 당연한 일이었다. 게다가 레지스트리는 잘못 건드리면 윈도우 자체가 폭탄처럼 변할 수 도 있기 때문에 상당히 조심스러울 수 밖에 없다.
Registry; 레지스트리
레지스트리는 윈도우95 나 윈도우98 및 윈도우NT와 같은 운영체계에서, 부팅시 필요한 정보, 즉 어떤 하드웨어가 장착되어 있는지, 시스템사양이나 선택사항은 무엇인지, 메모리는 어떻게 설정되어 있는지 등을 한 곳에 저장하기 위한 장소이다. 레지스트리는 이전의 윈도우 시스템, 즉 윈도우3.1 에서 사용되던 환경설정 파일(.INI 파일)과 유사하며, 그것을 대치한 것으로 이해하면 된다. 그러나 이전 시스템에서 운영되던 16 비트 응용프로그램들과 호환성을 위해 환경설정 파일(.INI 파일)도 여전히 함께 제공된다. 사용자는 Tweak UI와 같은 제어판 도구를 사용하여 레지스트리를 간접적으로 수정할 수 있으며, 응용프로그램이 설치되거나 삭제될 때마다 레지스트리 정보도 함께 수정된다. 네트웍 환경에서는 레지스트리 정보를 서버에 저장함으로써 개인이나 작업그룹 들의 시스템 정책을 중앙통제식으로 관리할 수도 있다.
(텀즈 용어해설 인용)
IT 백두대간 자바2, SDK 1.4 | ||
import java.util.prefs.*; import java.io.*; public class RegistryTest { // 키와 값을 출력한다. public static void printKeyValue(String key, String value) { System.out.println("Key = [" + key + "] , Value = [" + value + "]"); } // 해당 노드에 키를 포함하고 있는지 검사한다. public static boolean contains(Preferences node, String key) { return node.get(key, null) != null; } // 키보드로부터 이름을 입력받는다. public static String readName() { System.out.println("Input your name."); String value = null; try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); value = in.readLine(); } catch (IOException e) { // 예외 처리... } return value; } public static void main(String args[]) throws BackingStoreException { Preferences userRootPrefs = Preferences.userRoot(); String key = "name"; // 등록할 키 이름 String value = ""; String newName = null; if (contains(userRootPrefs, key)) { // 이미 키가 존재한다. System.out.println("Key already exists !"); value = userRootPrefs.get(key, ""); newName = readName(); // 키보드로부터 입력 받은 이름 if (newName.equals(value)) { // 입력된 이름과 레지스트리에 등록된 이름 같다. printKeyValue(key, value); // 결과 출력 후, 다른 원하는 작업 수행... } else { // 이름이 다르다, 당신은 누구얏 ? System.out.println("Invalid user name !"); } } else { // 키가 없으므로 처음 레지스트리에 등록 value = readName(); userRootPrefs.put(key, value); printKeyValue(key, value); } } }마치면서