2010-11-14 29 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