JNI的問題請教~thx

看板java作者時間19年前 (2006/11/10 12:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
環境linux&gcc 設定, 檔案放在 /root/JNI_test 程式放在最後面 附上編譯執行過程, 請問小弟到底錯誤在哪裡呢? 設定LD_LIBRARY_PATH方面為 [root@AP-RH4u4x64 JNI_test]# LD_LIBRARY_PATH=/root/JNI_test [root@AP-RH4u4x64 JNI_test]# export LD_LIBRARY_PATH 編譯方法 >javac HelloWorld.c >javah -classpath . HelloWorld >gcc -o libhello.so HelloWorld.c -shared -fPIC -I/usr/java/jdk1.5.0_09/include -I/usr/java/jdk1.5.0_09/include/linux 執行錯誤訊息 [root@AP-RH4u4x64 JNI_test]# java -cp . HelloWorld Exception in thread "main" java.lang.UnsatisfiedLinkError: /root/JNI_test/libhello.so: /root/JNI_test/libhello.so: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676) at java.lang.Runtime.loadLibrary0(Runtime.java:822) at java.lang.System.loadLibrary(System.java:993) at HelloWorld.<clinit>(HelloWorld.java:5) [root@AP-RH4u4x64 JNI_test]# 我去下載的範例 /*HelloWorld.c*/ #include <jni.h> #include "HelloWorld.h" #include <stdio.h> JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) { printf("Hello world!\n"); return; } /*HelloWorld.java*/ class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public static void main(String[] args) { new HelloWorld().displayHelloWorld(); } } -- ┌─────KKCITY─────┐  線上音樂新震撼   bbs.kkcity.com.tw ^_^ / 隨選隨播免等待 KKBOX ^_^ / └──From:140.126.21.172 ──┘   http://www.kkbox.com.tw   --
文章代碼(AID): #15K_c300 (java)