Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)...

本文详细介绍如何使用javah命令正确生成JNI头文件,并提供了一个具体的示例,包括设置环境变量、生成类文件及JNI头文件的具体步骤。

按照网上抄来的javah用法一般出错,今天查了一下午在一篇文章(http://www.ibm.com/developerworks/cn/java/j-jtctips/part6/index2.html) 中看到:“Javah 获取您的 Java 源文件并生成 C 头文件,其中包含您的 Java 代码中所有本机方法的 JNI 存根(stub)。如果您正在生成一个类的 JNI 存根,而且您已经把这个类定义为包的一部分,那么您 必须 指定完全限定的类名。”

现在总结如下:

TestHello.java所在的的目录如下:

E:\rcpworkspace\com.dlut.datasender\test\com\dlut\datasender\communication

TestHello.java

Java代码 收藏代码
  1. package com.dlut.datasender.communication;
  2. public class TestHello{
  3. static {
  4. System.loadLibrary("TestHello" );
  5. }
  6. public static native void hello(Stringmsg);
  7. public static void main(String[]args){
  8. hello("Hello,Kimm!" );
  9. }
  10. }
package com.dlut.datasender.communication;

public class TestHello {

	static {
		System.loadLibrary("TestHello");
	}

	public static native void hello(String msg);

	public static void main(String[] args) {
		hello("Hello,Kimm!");
	}
}

1.运行cmd命令,cd到TestHello.java所在的目录下面,输入:

Java代码 收藏代码
  1. javacTestHello.java
javac TestHello.java 

没有出错的话会在当前目录(E:\rcpworkspace\com.dlut.datasender\test\com\dlut\datasender\communication)下面生成TestHello.class文件。

2.cd到E:\rcpworkspace\com.dlut.datasender\test\(source folder根目录)

输入: set classpath=E:\rcpworkspace\com.dlut.datasender\test 回车

3.再输入:javah -jni com.dlut.datasender.communication.TestHello 回车

这时候在E:\rcpworkspace\com.dlut.datasender\test下面会生成一名为com_dlut_datasender_communication_TestHello.h的文件

4.重命名com_dlut_datasender_communication_TestHello.h为TestHello.h即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值