Java Native Interface 프로그래밍/java2016. 8. 4. 17:58
JNI
1. JNI(Java Native Interface)이란?
다른 언어로 작성된 코드를 자바에서 호출할 수 있도록 만들어진 규약이다. Native Code란 플랫폼에 종속적인 기계어 코드로 C/C++와 같은 언어를 말한다. 자바는 특정 플렛폼에서 제공하는 고유의 서비스의 기능을 모두 처리할 수 없기때문에 특수한 목적으로 제작된 하드웨어를 제어해야 할 필요가 있다면 자바만으로 해결하기 힘들다.
2. DLL이란 무엇인가?
라이브러리란 자주 사용되는 표준적인 함수를 매번 직접 작성해서 사용하는 것은 지나치게 시간 소모적이므로 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 집합이며 보통 LIB확장자를 가진다. 이 라이브러리를 프로그램에 링크시키는 방식에는 정적 링크(Static Link)와 동적 링크(Dynamic Link)가 있는데 동적 링크 방식을 쓰면 DLL이 된다.
- 정적 링크(Static Link)
실행파일을 만들 때 프로그램에 라이브러리 코드를 복사하여 컴파일하는 방식이다. 그래서 파일의 크기는 커지지만 실행파일은 완전한 단독 실행파일이 된다. 컴파일이 끝나면 라이브러리 파일(LIB)이 없이도 프로그램을 실행할 수 있다.
- 동적 링크(Dynamic Link)
실행 파일을 만들 때 프로그램에 라이브러리를 복사시키지 않고 링크시키는 방식이다. 그러면 실행파일에는 호출할 함수의 정보만 포함되고 실제 함수 코드는 복사되지 않으므로 실행파일의 크기는 작아진다. 실행 파일은 실제코드를 가지고 있지 않으므로 프로그램 실행시에 DLL이 꼭 있어야 한다.
3. Shared object란 무엇인가?
라이브러리는 함께 링크될 수 있도록 보통 미리 컴파일된 형태인 오브젝트코드(Object code) 형태로 존재한다. 이 Object들은 자주 사용하는 함수의 소스를 컴파일하여 만들 수 있다.
*표준 시스템 라이브러리: /lib와 /usr/lib에 위치
*라이브러리의 이름은 대개 lib로 시작
1단계: Native Method를 선언하는 자바 클래스를 작성하고 컴파일한다.
여기서 Native Method란 Native code(C/C++)를 호출하기 위한 자바 함수이다.
native는 Native Function이라는 것을 알여주는 키워드이다.
[출처]
- DLL이란 무엇인가?
http://stdesignstar.tistory.com/entry/DLL-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
'프로그래밍 > java' 카테고리의 다른 글
객체 (0) | 2016.05.04 |
---|---|
변수 (0) | 2016.05.04 |
hello world (0) | 2016.05.04 |
리눅스에 자바 설치 및 실행 방법 (0) | 2016.02.13 |