`

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. 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. }

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

Java代码 收藏代码
  1. javacTestHello.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学习三实例

    在这个"android JNI学习三实例"中,我们将深入探讨如何在Android应用开发中使用JNI。 一、JNI简介 JNI是Java平台的一部分,提供了一套接口,让Java代码能够调用本地(native)代码,同时也允许本地代码调用Java对象...

    android通过jni执行shell命令

    本文将深入探讨如何使用JNI在Android中执行shell命令。 首先,理解JNI的工作原理是必要的。JNI接口为Java应用程序提供了一个桥梁,使其可以直接调用本地(非Java)代码,通常是C/C++编写的库。这涉及到创建一个本地...

    JNI开发之javah生成静态和非静态的两个头文件区别代码

    JNI(Java Native Interface)是Java平台提供的一种标准接口,它允许Java代码和其他语言写的代码进行交互,特别是C和C++。在JNI开发中,我们常常需要通过`javah`工具来生成C或C++的头文件,这些头文件定义了Java层与...

    Android JNI使用demo

    通过这个"Android JNI使用demo",开发者可以学习到如何在Android应用中创建、调用和管理本地方法,理解JNI的工作原理,从而更好地利用C/C++进行性能优化和功能扩展。随着对JNI的深入理解和实践,开发者可以构建出更...

    Android通过JNI调用.so动态库

    其次,我们需要使用 javah 命令来生成 JNI 头文件。在 Eclipse 中,我们可以在项目的 bin 目录下找到 classes 文件夹,然后使用 javah 命令来生成头文件。例如,我们可以使用以下命令来生成头文件: javah -jni ...

    Android JNI demo

    2. 编译JNI头文件:使用`javah`命令(在Android Studio中通常是自动完成的)生成JNI头文件,这个文件包含了Java本地方法的C/C++原型。例如,`JniDemo.h`。 3. 实现本地方法:在C/C++源文件(如`JniDemo.cpp`)中,...

    android NDK 自动生成jni头文件

    Android NDK 自动生成jni头文件 Android NDK 中生成 jni 头文件是 JNI 开发...javah 命令是 Android NDK 中的一个重要工具,用于将 Java 代码中的 JNI 方法转换为 C/C++ 头文件,以便进行 JNI 的 C/C++ 端程序的开发。

    andorid使用jni执行shell命令例子

    本文将详细介绍如何在Android应用中使用JNI来执行shell命令。 首先,我们需要理解JNI的概念。JNI是Java平台提供的一种机制,它允许Java代码和其他语言写的代码进行交互。通过JNI,我们可以在Java应用程序中调用C/...

    android studio 下jni学习

    本教程聚焦于在Android Studio环境下使用JNI进行学习,涵盖了基本数据类型转化、引用数据类型转化以及JSON格式数据类型的转化。 首先,我们要理解JNI的基本概念。JNI为Java程序提供了一个接口,通过这个接口,Java...

    android jni使用curl进行http请求和文件下载

    - 使用`javah`命令生成对应的C++头文件,或者在Android Studio中使用CMakeLists.txt自动处理。 3. **编写C++代码** - 在生成的C++头文件中,声明libcurl的接口。然后在对应的cpp文件中实现这些接口。例如,`...

    android_JNI学习(记录文档+参考代码)

    Android JNI(Java Native Interface)是Android系统中连接Java和C/C++代码的桥梁,它允许开发者在Android应用中使用原生代码,以实现性能优化、使用底层库或访问硬件功能等目的。本资源包含了Android JNI的学习文档...

    android jni调用demo

    2. **头文件生成**:在Android Studio中,我们可以使用`javah`工具(或现在的`javac -h`选项)自动生成JNI头文件。这个头文件包含了Java类中`native`方法的C/C++原型,便于在本地代码中实现这些方法。 3. **C/C++...

    android jni使用libzip读取压缩文件

    然后,使用`javah`命令生成对应的C/C++头文件,这个头文件将定义JNI函数原型。 接下来,在C/C++代码中实现`readZipFromAssets`函数。首先,打开assets中的ZIP文件,然后使用libzip API读取其中的文件。这里可能需要...

    serial_jni_largestgle_Androidjni_Android串口操作JNI代码_android_

    `serial_jni_largestgle_Androidjni_Android串口操作JNI代码_android_`这个项目就是关于如何使用JNI来实现Android设备的串口读写的示例。 首先,我们需要了解JNI的概念。JNI是Java平台提供的一种接口,允许Java代码...

    android jni获取 Mac地址

    在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的...

    android jni 里面使用NewGlobalRef

    在Android的JNI(Java Native Interface)开发中,`NewGlobalRef`是一个至关重要的函数,它允许我们在本地C/C++代码中创建对Java对象的全局引用。这个知识点涉及到Android应用的跨语言交互,内存管理和生命周期管理。 ...

    Android JNI之OpenSSL

    《Android JNI之OpenSSL详解》 在Android应用开发中,JNI(Java Native Interface)是一种连接Java和本地代码的桥梁,允许开发者使用C/C++代码来实现高性能或特定平台的功能。OpenSSL是一个强大的安全套接层密码库...

    AndroidJNI技术实现

    在深入探讨Android JNI技术实现的过程中,我们首先需要理解JNI(Java Native Interface)的基本概念与作用。JNI是一种标准的Java平台接口,它允许Java代码与其他语言(如C、C++)编写的本地代码进行交互,这对于...

    android通过JNI访问硬件LED

    在Android系统中,Java Native Interface (JNI) 是一个关键组件,允许Java代码与其他语言(如C++或C)编写的代码进行交互...开发者可以通过学习和实践这个项目,深入了解Android系统的底层工作原理以及JNI的使用技巧。

Global site tag (gtag.js) - Google Analytics