2015-11-10 2 views
0

Я пытаюсь настроить демонстрационный пример JNI и застрял при экспорте библиотеки в ОС Windows.Не удается найти jni.h

В соответствии с this учебник, следующая команда должна быть выполнена:

gcc -o libctest.so -shared -I/path/to/jdk/headers ctest.c -lc 

, где /path/to/jdk/headers относится к каталогу, содержащему jni.h.

Это, как вызвать команду:

gcc -o ctest.dll -shared -I/"C:/Program Files/Java/jdk1.8.0_45/include" ctest.c -lc 

и результат был:

jni.h: no such file or directory. 
include jni.h 

Я проверил this и this, который, кажется, предлагает довольно много, что я сделал.

Код:

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

JNIEXPORT void JNICALL Java_HelloWorld_helloFromC 
    (JNIEnv * env, jobject jobj) 
{ 
    printf("Hello from C!\n"); 
} 

Как обойти эту ошибку?

+0

Почему бы не искать диск для файла 'jni.h'? Либо вы найдете его в другом месте, либо не увидите, что ваш JDK установлен неправильно. –

+0

jni.h на самом деле, это то, что меня смущает. – John

ответ

1

Вы пробовали с:

gcc -o ctest.dll -shared -I"C:\Program Files\Java\jdk1.8.0_45\include" ctest.c -lc 

Обратите внимание, что после того, как -I слэш характер не там больше и разделитель устанавливается на обратной косой черты (Разделителем для Windows).

+0

Ничего себе я глупый :) Ну, это заставило меня обойти эту ошибку. Он взорвался с отсутствующим jndi_md.h, но ему удалось разрешить его с другим -I в соответствующий каталог. – John

+0

@John Рад, что это сработало. – dan

Смежные вопросы