문제

나 자바 개발자를 위해 몇 년 들어있는 당신이 할 수있는 꽤 유용하고 강력한 것으로 JNI.면 나도 몰라 난 그냥에 필요하지 않았거나 사용하지 않으면 정말 관련하여 나하지만 내가 없었을 터치합니다.

내가 무엇인지 궁금의 유용성의 이러한 측면 Java 입니다.예면 좋을 것 같습니다.

도움이 되었습니까?

해결책

그것은 매우 유용합니다.내가 볼 수있는 2 기본을 사용하는 이유 JNI(가능성이 있습니다).

  1. 성능입니다.이 있는 경우 조각의 코드에서는 자바 런타임이 어떤 이유로 절단 할 수 없이 그것 있습니다.을 구현할 수 있는 기능 기본 코드에서 호출 Java.이것은 당신을 손으로 조정의 구현을 경우 당신 필요합니다.이것은 가능성이 최소한 일반적인 이유만,Java 일반적으로 수행됩니다.

  2. 액세스 OS 특정한 Api.이 중 하나입을 지원합니다.나는 경우 필요에 뭔가를,하지만 또한 필요 무언가에 대한 액세스는 Java 단순히 수 없습니다.내 경우에 그것은 유닉스 도메인의 소켓을 지원합니다.때문에(말할 수 있는 이름으로)그들은 유닉스의 특정,표준이 없 Java 방법을 사용합니다.그래서 내가 만들어준 것처럼 행동에 대한 래퍼로 그들에 액세스하에 그것을 JNI.비올라,문제의 해결합니다.

다른 팁

가 작성된 광범위한 JNI 층 for iSeries DB2 에 액세스,사용자 큐,데이터 큐 그리고 몇 가지 다른 OS/400 구체적 사항이 있습니다.의 우리의 시스템에 iSeries 되었을 것이 없이는 불가능하 JNI.So,yes,JNI 는 그것의 장소,그리고 당신은 그것을 필요로 할 때,당신은 당신 필요합니다.

그것은 상대적으로 어렵(다음을 순 Java),그러나 강력한지요.

또한,언제 내가 찾는 것에 어떤 JNI 코드,나 또한 사용을 고려 JNA.

나는 생각할 수 있는 몇 가지 사용의 상단을 내 머리:

  1. 통합으로 기존은 낮은 수준 (C/C++)Api 없는 Java 상대
  2. 통합 측면 의 시스템 노출되지 않는 을 통해 사용 가능한 Java Api(direct 하드웨어 액세스 등)

일부는 말할 수 있습니다 그것이 유용할 수 있을 만들기 위한 고도로 최적화된 부분의 코드 그러나 현대 Jvm 당신은 매우 빠르고병의 합병증을 사용하여 JNI 아마보다 중요 어떤 성과 이득을 볼 수 있습니다.

거기에 몇 가지 사용에 대한 바인딩을 FFMPeg C-디코딩(드라이아이스)을 비디오/오디오 형식입니다.

도 있 JNA,만드는 다음과 같은 라이브러리를 사용하여 자체입니다.이것은"쉽게"관점에서 전달하는 모든 것을 자바 개발자,관리와 더 열심히 하는 의미에서 당신은 그 구조를 매핑을 많이 하루한 작업을 모든 포인터,etc.,통과하다.

우리는 필요조건을 감싸는 새로운 사용자 인터페이 주위 유산 C 응용 프로그램에서 실행 Suse Linux.JNI 었는 완벽한 도구입니다.

에서 일반적인 내가 생각하는 사용자가 모순 Java 의 개념 즉,.그러나 거기에 사용하는 경우 JNI 는 것이 유용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top