JNA(Java Native Access)란?
JNI(Java Native Interface)를 API로 구현해 놓은 JAVA 라이브러리 입니다. JNI는 Java 에서 native 영역(c, c++)으로 들어가 호출을 하거나 또는 native에서 java로 호출하는 interface로 java에서 c또는 c++언어로 만든 라이브러리 또는 솔루션을 JAVA에서 바로 사용하게 해줍니다. 즉, JNA는 JNI에 번거로운 부분을 쉽게 해준 API입니다.
Spring 또는 Spring Boot JNA 적용 방법
pom.xml에 dependency 추가.
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.1.0</version>
</dependency>
windows registry 읽기 쓰기 삭제 api 실행 및 사용방법
import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;
class JNAwindowsRegistry {
public static void main(String[] args) {
// Read a string 읽기
String productName = Advapi32Util.registryGetStringValue(
WinReg.HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "GochigoAlimi");
System.out.printf("Product Name: %s\n", productName);
// Read an int (& 0xFFFFFFFFL for large unsigned int) 읽기
int timeout = Advapi32Util.registryGetIntValue(
WinReg.HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows", "ShutdownWarningDialogTimeout");
System.out.printf("Shutdown Warning Dialog Timeout: %d (%d as unsigned long)\n", timeout, timeout & 0xFFFFFFFFL);
// Create a key and write a string 생성
Advapi32Util.registryCreateKey(WinReg.HKEY_CURRENT_USER, "SOFTWARE\\~~");
Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, "", "", "");
// Delete a key 삭제
Advapi32Util.registryDeleteKey(WinReg.HKEY_CURRENT_USER, "SOFTWARE\\~~");
}
}
'Framework' 카테고리의 다른 글
Spring Security (0) | 2022.04.04 |
---|---|
Javadoc 작성방법 (0) | 2022.03.30 |
Logback 이란? (0) | 2022.03.29 |
Javadoc이란? Javadoc 사용방법 (0) | 2022.03.28 |