'[Java]/[native]'에 해당되는 글 1건

  1. 2016.07.03 64bit linux 에서 jni 간단 test
반응형
HelloJNI.java 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class HelloJNI {
 
    static {
        System.loadLibrary("HelloJNI");
    }
 
    private native void helloJNI();
 
    private native void printString(String string);
 
    public static void main(String[] args) {
        HelloJNI jni = new HelloJNI();
        jni.helloJNI();
        jni.printString("here is jni!!");
    }
}

아래 명령어 실행

1
2
javac HelloJNI.java
javah -classpath . HelloJNI


HelloJNI.c 작성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"
 
JNIEXPORT void JNICALL Java_HelloJNI_helloJNI(JNIEnv *env, jobject obj) {
    printf( "Hello JNI!\n" );
    return;
}
 
JNIEXPORT void JNICALL Java_HelloJNI_printString(JNIEnv *env, jobject obj, jstring string) {
    const char *str = (*env)->GetStringUTFChars(env,string,0);
    printf("str = %s\n", str);
    return;
}


아래 명령어 실행


1
2
gcc -shared -fPIC -I $JAVA_HOME/include -I $JAVA_HOME/include/linux HelloJNI.c -o libHelloJNI.so
java -classpath . -Djava.library.path=. HelloJNI


결과



1
2
Hello JNI!
str = here is jni!!
반응형
Posted by FeliZ_하늘..
,