zoukankan      html  css  js  c++  java
  • Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)

    按照网上抄来的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.   
    3. public class TestHello {  
    4.   
    5.     static {  
    6.         System.loadLibrary("TestHello");  
    7.     }  
    8.   
    9.     public static native void hello(String msg);  
    10.   
    11.     public static void main(String[] args) {  
    12.         hello("Hello,Kimm!");  
    13.     }  
    14. }  
    1. package com.dlut.datasender.communication;  
    2.   
    3. public class TestHello {  
    4.   
    5.     static {  
    6.         System.loadLibrary("TestHello");  
    7.     }  
    8.   
    9.     public static native void hello(String msg);  
    10.   
    11.     public static void main(String[] args) {  
    12.         hello("Hello,Kimm!");  
    13.     }  
    14. }  

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

    Java代码  收藏代码
    1. javac TestHello.java   
    1. 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即可

  • 相关阅读:
    华为S12700 NQA配置
    斐讯K1 K2 开启Telnet
    存储的一些基本概念(HBA,LUN)
    华为AR配置内部服务器示例(只有1个公网IP)
    使用nginx 做kbmmw REST 服务的负载均衡
    第一个 macOS 64位 kbmmw 服务器
    使用FMXlinux 开发linux 桌面应用
    推荐一套免费跨平台的delphi 哈希及加密算法库
    使用kbmmw 的调度事件动态显示时间
    提高sqlite 的运行性能(转载)
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5621112.html
Copyright © 2011-2022 走看看