JNI


이 문서는 토막글입니다.

이 문서는 토막글로 분류되는 800바이트 이하의 문서입니다. 토막글을 채우는 것은 기여자의 따뜻한 손길입니다. 이 틀을 적용할 시 틀의 매개변수로 분류:토막글의 하위 분류 중 적절한 분류를 지정해 주시기 바랍니다.

Java Native Interface.

1 개요

JavaFFI로 Java 언어/JVM에서 C/C++ 언어의 함수를 호출하기 위한 API이다.
javah 명령으로 C/C++ 헤더 파일을 생성하고 생성된 헤더 파일에 맞춰 C/C++ 코드를 작성하게 된다.

2 사용 목적

주로 사용되는 목적은 다음과 같다.

  • 이미 존재하는 방대한 C/C++ 코드를 활용하기 위해.
  • Java로 구현하면 너무 느린 기능의 속도 향상을 위해.
  • JVM에서 지원하지 않는 운영체제의 기능을 호출하기 위해.

3 예제

작성중

4 JNA

유사 기술로 JNA(Java Native Access)가 있다. JNI가 자바 소스코드로 부터 헤더파일을 생성해 주는 것과 달리 libffi라 불리는 Native Library를 사용하여 동적으로 Native 함수를 호출해 준다.