HardBirch

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

时间:11-04-25 栏目:安卓学习笔记 作者:张飞不张,文采横飞 评论:1 点击: 1,472 次

 

按照网上抄来的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

package com.dlut.datasender.communication; 
public class  TestHello { 
static{  

System.loadLibrary("TestHello");  

}  

public staticnative  hello(String msg);  

public static void main(String[] args) {  

hello("Hello,Kimm!);  

 } 

}  

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所在的目录下面,输入:

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即可

Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用):目前有1 条留言

  1. 沙发
    prettycom:

    学习了,刚好解决了我的问题。谢了!

    2012-02-07 13:27 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐