JAVA JNI 로 컬 방법 호출
package cn.com.sky.jni;
public class HelloNative {
public static native void hello();
public native void test();
}
.class 파일 로 컴 파일 한 후 자바 명령 을 실행 하여 헤더 파일 을 만 듭 니 다.생 성 된 헤더 파일 규칙 은[패키지 이름클래스 이름.h],그 중 가방 이름 의"."은 자동 으로""로 대 체 됩 니 다.위 글 에서 생 성 된 헤더 파일 은 cn 입 니 다.com_sky_jni_HelloNative.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class cn_com_sky_jni_HelloNative */
#ifndef _Included_cn_com_sky_jni_HelloNative
#define _Included_cn_com_sky_jni_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: cn_com_sky_jni_HelloNative
* Method: hello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_cn_com_sky_jni_HelloNative_hello
(JNIEnv *, jclass);
/*
* Class: cn_com_sky_jni_HelloNative
* Method: test
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_cn_com_sky_jni_HelloNative_test
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
cn 작성com_sky_jni_HelloNative.c
#include <stdio.h>
#include "cn_com_sky_jni_HelloNative.h"
JNIEXPORT void JNICALL Java_cn_com_sky_jni_HelloNative_hello(JNIEnv* env, jclass cls){
printf("native
");
}
JNIEXPORT void JNICALL Java_cn_com_sky_jni_HelloNative_test(JNIEnv* env, jobject obj){
printf("test
");
}
도 구 를 사용 하여 HelloNative.dll 및 HelloNative.lib(본인 이 사용 하 는 것 은 VS 2008)를 생 성 합 니 다.도 구 를 사용 할 때 헤더 파일'jni.h'등 을 도입 해 야 합 니 다.
dll 을 호출 합 니 다.호출 프로그램 을 실행 할 때 dll 파일 을 찾 거나 인자-Djava.library.path=D:\dll 로 가 져 올 수 있 도록 PATH 를 설정 해 야 합 니 다.그 중에서 D:\dll 은 dll 과 lib 파일 의 디 렉 터 리 를 로 컬 에 배치 합 니 다.
package cn.com.sky.jni;
/**
* @author Administrator
*
*/
public class HelloNativeMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.loadLibrary("HelloNative");
HelloNative.hello();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.