java jna 예제

JNA는 추가 성능이 필요한 경우 네이티브 메서드를 매핑하는 추가 방법을 제공합니다. 네이티브 메서드를 보유 하는 클래스를 선언 할 수 있습니다., 네이티브 한정자와 메서드의 수를 선언 하 고 라이브러리의 이름으로 클래스 정적 초기화에서 Native.register (String)를 호출 할 수 있습니다. 예를 들어 JNA 직접 매핑및 DirectXXXTest 단위 테스트를 참조하십시오. JNA JA를 사용할 수 있는지 확인하는 가장 쉬운 방법은 Maven을 사용하는 것입니다. 여기서 제공하는 간단한 예제를 위해 다음과 같은 Maven 스크립트를 사용합니다. 실제 Java 프로그램은 WIN32를 사용하여 모든 최상위 창 목록을 덤프하는 몇 가지 JNA 예제를 기반으로 합니다. 이 예제의 소스 코드는 여기에 제공됩니다: 네이티브 라이브러리에는 표준화된 메모리 바이트 정렬 맛이 없습니다. JNA는 기본적으로 라이브러리 특정 사용자 지정 맞춤으로 재정의할 수 있는 OS 플랫폼별 설정으로 설정됩니다. 기본 라이브러리의 설명서에 정렬 세부 정보가 제공되지 않으면 Java 래퍼를 구현하는 동안 시행 착오에 따라 올바른 정렬이 결정되어야 합니다. 네이티브 함수와 동일한 이름 및 인수 형식을 사용하여 Java 메서드를 정의하여 대상 라이브러리의 함수를 미러하는 메서드를 선언합니다(아래의 기본 매핑 또는 형식 매핑의 자세한 테이블 참조). 네이티브 함수에 전달하기 위해 네이티브 구조를 선언해야 할 수도 있습니다.

이렇게 하려면 구조를 확장하는 인터페이스 정의 내에서 클래스를 만들고 공용 필드(배열 또는 중첩 된 구조를 포함할 수 있음)를 추가합니다. JNA는 작은 JNI 라이브러리 스텁을 사용하여 네이티브 코드를 동적으로 호출합니다. 개발자는 Java 인터페이스를 사용하여 대상 네이티브 라이브러리의 함수와 구조를 설명합니다. 따라서 여러 플랫폼에 대한 JNI 코드를 구성하고 빌드하는 데 많은 오버헤드가 발생하지 않으면서 기본 플랫폼 기능을 쉽게 활용할 수 있습니다. 이 보다 자세한 설명을 읽어보십시오. 자바 네이티브 액세스 (JNA)는 자바 네이티브 인터페이스를 사용하지 않고 네이티브 공유 라이브러리에 쉽게 액세스 할 수있는 자바 프로그램을 제공하는 커뮤니티 개발 라이브러리입니다. JNA의 디자인은 최소한의 노력으로 자연스럽게 네이티브 액세스를 제공하는 것을 목표로합니다.

java jna 예제