2010-11-14 78 views
3

我正在運行安裝了Eclipse的Ubuntu Linux,並且我正在嘗試使用JNI 來這麼做,因此我需要使用javah,但它沒有似乎工作 我剛剛安裝Ubuntu和我不熟悉Linux/bash shelljavah幫助 - 「在命令行上沒有指定類」

爲我的eclipse項目調用myJNI,我有包含本機方法的類DoJNI。

在終端:

javah -classpath .;\home\thomas\Documents\LinuxProgramming\EclipseWorkspace\myJNI\bin\org\me\jni DoJNI 

錯誤,我得到的是: 沒有類在命令行

回答

6

使用正斜槓,而不是反斜槓指定,和一個冒號,而不是一個分號:

javah -classpath .:/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/myJNI/bin/org/me/jni DoJNI 

另外,我懷疑,你真的不希望組織/ ME/JNI的類路徑上,但只是bin目錄,使用類別org.me.jni.DoJNI

javah -classpath .:/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/myJNI/bin org.me.jni.DoJNI 
+0

非常感謝! 以便生成頭文件,但是當我嘗試編譯爲.so時: ./org_me_jni_DoJNI.o:在創建共享對象時,無法使用針對'.rodata.str1.1'的重定位R_X86_64_32;與-fPIC \t \t libnative線\t \t 0 C/C++編譯問題 化妝:*** [liblibnative.so]錯誤1 \t libnative 我編譯在Eclipse C/C++ – Prime 2010-11-15 02:52:03

+0

解決它 我編譯: gcc -o nativelib.so -shared -fPIC mycode.c – Prime 2010-11-15 07:01:55

+0

非常感謝你的回答非常有用。 – Saraschandraa 2015-06-17 06:43:11