使用Javah 生成C/C++头文件的误区
2015-04-30 00:00
459 查看
摘要:使用Javah生成C/C++头文件的误区
使用Javah可以获取您的Java源文件并生成C/C++头文件,其中包含您的Java代码中所有本地方法(native方法)的JNI存根(stub,C头文件)。如果您正在生成一个类的JNI存根,而且您已经把这个类定义为包的一部分,那么您必须指定完全限定的类名。
下面举例说明:
使用eclipse建立一个工程假设工程路径为$ProjectPath,并且你已经定义了一个类,并且带包名:cn.com.comit.jni
----------------------------
----------------------------
eclipse会自动帮你编译出一个字节码文件HelloJni.class,路径是$ProjectPath\bin\cn\com\comit\jni,很可能你会先cd到.class的目录这么做:
>cd$ProjectPath\bin\cn\com\comit\jni
>$ProjectPath\binjavahHelloJni
发现执行出错:
错误:无法访问HelloJni
错误的类文件:.\HelloJni.class
类文件包含错误的类:cn.com.comit.jni.HelloJni
请删除该文件或确保该文件位于正确的类路径子目录中。
看来是路径有问题咯。那改成
javahcn.com.comit.jni.HelloJni
再次运行,发现还是错误:
错误:无法访问cn.com.comit.jni.HelloJni
未找到cn.com.comit.jni.HelloJni的类文件
javadoc:错误-找不到类cn.com.comit.jni.HelloJni。
怎么才能解决这个问题呢?其实只要cd到包的上一级目录(我们这里是$ProjectPath\bin)在运行下面的命令就搞定了:
javah-classpath.cn.com.comit.jni.HelloJni
看一下生成的C头文件:
使用Javah可以获取您的Java源文件并生成C/C++头文件,其中包含您的Java代码中所有本地方法(native方法)的JNI存根(stub,C头文件)。如果您正在生成一个类的JNI存根,而且您已经把这个类定义为包的一部分,那么您必须指定完全限定的类名。
下面举例说明:
使用eclipse建立一个工程假设工程路径为$ProjectPath,并且你已经定义了一个类,并且带包名:cn.com.comit.jni
----------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
eclipse会自动帮你编译出一个字节码文件HelloJni.class,路径是$ProjectPath\bin\cn\com\comit\jni,很可能你会先cd到.class的目录这么做:
>cd$ProjectPath\bin\cn\com\comit\jni
>$ProjectPath\binjavahHelloJni
发现执行出错:
错误:无法访问HelloJni
错误的类文件:.\HelloJni.class
类文件包含错误的类:cn.com.comit.jni.HelloJni
请删除该文件或确保该文件位于正确的类路径子目录中。
看来是路径有问题咯。那改成
javahcn.com.comit.jni.HelloJni
再次运行,发现还是错误:
错误:无法访问cn.com.comit.jni.HelloJni
未找到cn.com.comit.jni.HelloJni的类文件
javadoc:错误-找不到类cn.com.comit.jni.HelloJni。
怎么才能解决这个问题呢?其实只要cd到包的上一级目录(我们这里是$ProjectPath\bin)在运行下面的命令就搞定了:
javah-classpath.cn.com.comit.jni.HelloJni
看一下生成的C头文件:
1 2 3 4 5 |
1 2 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
相关文章推荐
- 使用Javah 生成C/C++头文件的误区
- 使用Javah 生成C/C++头文件的误区
- 使用Javah 生成C/C++头文件的误区
- 使用Javah 生成C/C++头文件的误区
- 使用Javah 生成C/C++头文件的误区
- 如何使用Javah 生成C/C++头文件的误区 找不到 ‘XX.XXXX.XX.CLASSNAME’ 的类文件
- 使用Javah 生成C/C++头文件的误区
- 使用Javah 生成C/C++头文件的误区
- 使用javac编译java文件和使用javah生成C/C++头文件 遇到找不到类的问题
- 使用javah生成c/c++头文件误区总结
- 使用Javah 生成C/C++头文件
- 使用javah生成C/C++头文件的误区
- javah 使用(Javah生成JNI头文件)
- Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤
- javah 使用(Javah生成JNI头文件)
- java使用JNI调用C++代码(vs2010生成dll文件)
- Python3.5环境下使用generateDS解析xml文件生成C++头文件的方法
- javah 生成 C++头文件 提示“找不到 什么 的类文件”
- JAVA JNI生成C++头文件
- 【转载整理】eclipse 开发c/c++、Java使用JNI调用C程序、生成64位dll动态链接库