2012-04-09 3 views
0

왜 Java에서 전체 응용 프로그램을 개발할 수있을 때 JNI가 원시에 액세스해야합니까?JNI의 정확한 필요성은 무엇입니까?

감사합니다, 당신은 자바에서 전체 응용 프로그램을 개발할 수없는 경우 이 Sujanian이

+2

JNI는 Java (존재하지 않음)에서 수행 할 수 없거나 Java로 수행 할 수 있지만 원시 코드에서보다 효율적으로 수행 할 수있는 작업을위한 것입니다. – Mat

답변

0

가 JNI가 필요합니다. 예를 들어 C로만 사용 가능한 레거시 라이브러리가 있거나 시스템 드라이버와 통신해야 할 필요가있는 경우에 이러한 상황이 발생할 수 있습니다. 전체 애플리케이션을 순수 자바로 작성할 수 있다면 물론 JNI는 필요하지 않습니다.

0

순수 Java로 전체 응용 프로그램을 개발할 수 있으면 JNI가 필요하지 않습니다. 그것이 선호되는 방법이기도합니다. 그러나

:

  • 당신은 기존의 네이티브 코드 라이브러리를 호출 할 수 있습니다. Java로 다시 작성하는 것이 가능할 수도 있지만, 많은 작업이 필요할 수 있습니다 (포트 및 나중에 두 버전 유지).

  • 하드웨어와 통신하려면 저수준 코드를 작성해야 할 수도 있습니다/OS는 직접 방식으로 JVM은하지 않는 당신이 우리가 자바에서 전체 응용 프로그램을 개발할 수있을 때 JNI 네이티브에 액세스해야 할 이유

0

.

전체 응용 프로그램을 항상 Java로 개발할 수 있다고 주장하는 경우 올바르지 않습니다. 항상 그렇게 할 수는 없으며, JNI는 그 격차를 해소 할 것입니다.

반면에 'when'대신 'if'를 사용하면 그 경우 JNI가 필요하지 않습니다.

관련 문제