>  기사  >  Java  >  Java에서 JNI의 간단한 사용 소개(자세히)

Java에서 JNI의 간단한 사용 소개(자세히)

不言
不言앞으로
2018-10-10 11:53:104435검색

이 기사는 JNI 사용에 대한 간단한 소개(자세한 내용)를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

JNI를 사용하면 Java 코드에서 기본 라이브러리의 기능을 호출할 수 있습니다.

다음은 JNI를 사용하는 간단한 방법입니다

1. Java 측 인터페이스를 생성합니다

public class JNIIterface {
    // 导入最终生成的dll文件
    static {
        System.loadLibrary("JNIDemo");
    }

    // 声明dll文件中实现的接口
    public native int MyMethod();
    
    public native int add(int x, int y);
}

2. 인터페이스# 🎜🎜#

위에서 생성한 JNIterface 클래스, JNIterface .class 파일의 경로: JNIDemobinbaseJNIterface .class

프로젝트 디렉터리의 bin 디렉터리에서 명령을 실행합니다: javah -classpath . -jni base.JNIIterface

그러면 JNIDemobin 디렉터리에 base_JNIIterface.h 파일이 생성됩니다

3 Visual Studio를 사용하여 인터페이스 구현을 작성합니다. 🎜🎜#

C 프로젝트 만들기, 특히 단계는 다음과 같습니다.

첫 번째 단계:

두 번째 단계:

#🎜🎜 #

세 번째 단계:

가져오기 header files

위의 두 번째 단계 변경 이 단계에서 생성된 헤더 파일과 jdk 루트 디렉터리의 include 디렉터리에 있는 jni.h 및 win32 디렉터리에 있는 jni_md.h 파일

include는 프로젝트 디렉토리의 헤더 파일 디렉토리에 복사됩니다#🎜🎜 #

함수 구현 파일 생성

프로젝트에서 소스 파일을 마우스 오른쪽 버튼으로 클릭 디렉터리를 클릭하고 Add-》Class

#🎜 🎜#다음 코드를 작성합니다.

#include "base_JNIIterface.h"
#include "jni.h"
#include <stdio.h>

JNIEXPORT jint JNICALL Java_base_JNIIterface_MyMethod
  (JNIEnv *, jobject){
      printf("成功实现JNI测试DEMO");
      return 0;
}

JNIEXPORT jint JNICALL Java_base_JNIIterface_add
  (JNIEnv *, jobject, jint a, jint b){
      return a + b;
}

4 dll 파일 #🎜🎜을 생성합니다. #프로젝트 디렉토리에서 "Solution"을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 후 아래와 같이 구성합니다. 프로젝트

그런 다음 컴파일 후 프로젝트 디렉토리

#🎜🎜 #

5 아래의 Release 디렉토리에 dll 파일이 됩니다. dll 파일을 java 프로젝트#🎜🎜로 구성하세요. #

먼저 Java 프로젝트의 루트 디렉토리 아래 lib 디렉토리에 dll 파일을 배치합니다

그런 다음 아래 단계에 따라 dll 파일을 프로젝트에 네이티브 라이브러리로 추가합니다 #🎜🎜 #

위 그림에 표시된 Native Library 위치를 편집한 후 팝업 인터페이스에서 Native Library를 선택합니다. 해당 폴더는

6. JNI가 성공적으로 적용되었는지 확인하는 테스트 클래스를 작성합니다. 공개 클래스 HelloJNI {

    public static void main(String[] args) {
        JNIIterface hw = new JNIIterface();
        int t = hw.add(3, 7);
        int s = hw.MyMethod();
        System.out.println(t);
        System.out.println(s);
    }
}

이후 테스트 결과

0
0
成功??JNI??DEMO

위 내용은 JNI를 사용하는 가장 기본적인 단계를 기록한 것입니다.

시스템 dll 파일과 같이 이미 작성된 타사 dll 파일의 기능을 사용하는 방법에는 여전히 심층적인 탐색이 필요합니다.

위 내용은 Java에서 JNI의 간단한 사용 소개(자세히)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제