按照网上抄来的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
static
native
void
hello(Stringmsg);
-
-
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学习三实例"中,我们将深入探讨如何在Android应用开发中使用JNI。 一、JNI简介 JNI是Java平台的一部分,提供了一套接口,让Java代码能够调用本地(native)代码,同时也允许本地代码调用Java对象...
本文将深入探讨如何使用JNI在Android中执行shell命令。 首先,理解JNI的工作原理是必要的。JNI接口为Java应用程序提供了一个桥梁,使其可以直接调用本地(非Java)代码,通常是C/C++编写的库。这涉及到创建一个本地...
JNI(Java Native Interface)是Java平台提供的一种标准接口,它允许Java代码和其他语言写的代码进行交互,特别是C和C++。在JNI开发中,我们常常需要通过`javah`工具来生成C或C++的头文件,这些头文件定义了Java层与...
通过这个"Android JNI使用demo",开发者可以学习到如何在Android应用中创建、调用和管理本地方法,理解JNI的工作原理,从而更好地利用C/C++进行性能优化和功能扩展。随着对JNI的深入理解和实践,开发者可以构建出更...
其次,我们需要使用 javah 命令来生成 JNI 头文件。在 Eclipse 中,我们可以在项目的 bin 目录下找到 classes 文件夹,然后使用 javah 命令来生成头文件。例如,我们可以使用以下命令来生成头文件: javah -jni ...
2. 编译JNI头文件:使用`javah`命令(在Android Studio中通常是自动完成的)生成JNI头文件,这个文件包含了Java本地方法的C/C++原型。例如,`JniDemo.h`。 3. 实现本地方法:在C/C++源文件(如`JniDemo.cpp`)中,...
Android NDK 自动生成jni头文件 Android NDK 中生成 jni 头文件是 JNI 开发...javah 命令是 Android NDK 中的一个重要工具,用于将 Java 代码中的 JNI 方法转换为 C/C++ 头文件,以便进行 JNI 的 C/C++ 端程序的开发。
本文将详细介绍如何在Android应用中使用JNI来执行shell命令。 首先,我们需要理解JNI的概念。JNI是Java平台提供的一种机制,它允许Java代码和其他语言写的代码进行交互。通过JNI,我们可以在Java应用程序中调用C/...
本教程聚焦于在Android Studio环境下使用JNI进行学习,涵盖了基本数据类型转化、引用数据类型转化以及JSON格式数据类型的转化。 首先,我们要理解JNI的基本概念。JNI为Java程序提供了一个接口,通过这个接口,Java...
- 使用`javah`命令生成对应的C++头文件,或者在Android Studio中使用CMakeLists.txt自动处理。 3. **编写C++代码** - 在生成的C++头文件中,声明libcurl的接口。然后在对应的cpp文件中实现这些接口。例如,`...
Android JNI(Java Native Interface)是Android系统中连接Java和C/C++代码的桥梁,它允许开发者在Android应用中使用原生代码,以实现性能优化、使用底层库或访问硬件功能等目的。本资源包含了Android JNI的学习文档...
2. **头文件生成**:在Android Studio中,我们可以使用`javah`工具(或现在的`javac -h`选项)自动生成JNI头文件。这个头文件包含了Java类中`native`方法的C/C++原型,便于在本地代码中实现这些方法。 3. **C/C++...
然后,使用`javah`命令生成对应的C/C++头文件,这个头文件将定义JNI函数原型。 接下来,在C/C++代码中实现`readZipFromAssets`函数。首先,打开assets中的ZIP文件,然后使用libzip API读取其中的文件。这里可能需要...
`serial_jni_largestgle_Androidjni_Android串口操作JNI代码_android_`这个项目就是关于如何使用JNI来实现Android设备的串口读写的示例。 首先,我们需要了解JNI的概念。JNI是Java平台提供的一种接口,允许Java代码...
在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的...
在Android的JNI(Java Native Interface)开发中,`NewGlobalRef`是一个至关重要的函数,它允许我们在本地C/C++代码中创建对Java对象的全局引用。这个知识点涉及到Android应用的跨语言交互,内存管理和生命周期管理。 ...
《Android JNI之OpenSSL详解》 在Android应用开发中,JNI(Java Native Interface)是一种连接Java和本地代码的桥梁,允许开发者使用C/C++代码来实现高性能或特定平台的功能。OpenSSL是一个强大的安全套接层密码库...
在深入探讨Android JNI技术实现的过程中,我们首先需要理解JNI(Java Native Interface)的基本概念与作用。JNI是一种标准的Java平台接口,它允许Java代码与其他语言(如C、C++)编写的本地代码进行交互,这对于...
在Android系统中,Java Native Interface (JNI) 是一个关键组件,允许Java代码与其他语言(如C++或C)编写的代码进行交互...开发者可以通过学习和实践这个项目,深入了解Android系统的底层工作原理以及JNI的使用技巧。