現在、JNI を使用しています。
私は以下のことをしました:
HelloJNI.java を作りました。ライブラリ libhello.so をリンクするだけです。
static { System.loadLibrary("hello"); }
このような。もちろん体もありますが、特別なことは何もありません。
次に、クラスファイル、C ファイル、ヘッダーファイルを作成しました。私が命じた
#javac HelloJNI.java #javah -classpath /usr/guest/workspace/path/ -jni package.HelloJNI no errors till now.
libhello.so を作りました。
# gcc -shared -fpic -o libhello.so -I/usr/java/jdk1.7.0_21/include -I/usr/java/jdk1.7.0_21/include/linux HelloJNI.c
このプロジェクトを Eclipse で実行すると、以下のようなエラーが表示されます。
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at org.owls.jni.HelloJNI.<clinit>(HelloJNI.java:7)
私はこれを試しましたが、うまくいきません。
# chcon -t texrel_shlib_t libhello.so
読んでくれてありがとう、そしてあなたの賢明な解決策:D
- 誰かが PATH について話します。しかし、その行をどこに置くべきかわかりません。