jni Выпуск в Linux: не удается открыть файл общего объекта

Я видел этот вопрос здесь, попробовал предложенные исправления, но Нет успеха пока для меня. У меня довольно какое-то опыт Java, но JNI давным-давно, никогда не делал его на Linux, хотя ...

Я пытаюсь получить простое приложение Helloworld JNI, работающее на Linux.

Небольшой файл Java:

class HelloWorld {

    private native void print();

    public static void main(String[] args){
        new HelloWorld().print();
    }

    static {
        System.out.println(System.getProperty("java.library.path"));
        System.loadLibrary("HelloWorld");
    }

}

Малый C-файл C:

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

JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
    printf("Hello World!\n");
    return;
}

Компилировал файл C by:

gcc -shared -Wall -fPIC HelloWorld.c -I/usr/lib/gcc/x86_64-redhat-linux/3.4.3/include/ -o libHelloWorld.so

Запустите приложение:

java HelloWorld

или

java -Djava.library.path=/home/nxp40954/jnitesting/. HelloWorld

, но нет хорошего, получение:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/nxp40954/jnitesting/libHelloWorld.so: /home/nxp40954/jnitesting/libHelloWorld.so: cannot open shared object file: No such file or directory

странно Поскольку на самом деле есть /home/nxp40954/jnitesting/libhellowerld.so файл.

У кого-нибудь есть ключ?

10
задан Stuart Cook 2 September 2011 в 14:20
поделиться