`

初学JNI,demo

    博客分类:
  • JNI
阅读更多
书写步骤:
1、编写带有native声明的方法的java类。
2、使用javac命令编译所编写的java类。
3、使用javah java类名生成扩展名为h的头文件。
4、使用C/C++实现本地方法。
5、将C/C++编写的文件生成动态连接库。
1)编写helloWorld为例
public class HelloWorld { 
  public native void displayHelloWorld();
  static { 
     System.loadLibrary("hello"); 
  } 
  public static void main(String[] args) { 
     new HelloWorld().displayHelloWorld(); 
  }
} 

3)生成扩展名为h的头文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    displayHelloWorld
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
  (JNIEnv *, jclass, jstring);

#ifdef __cplusplus
}
#endif
#endif

将#include <jni.h>修改成 #include "jni.h"
4)编写本地方法实现和由javah命令生成的头文件里面声明的方法名相同的方法。
#include "stdafx.h"
#include "HelloWorld.h"

JNIEXPORT void JNICALL Java_TestHello_hello(JNIEnv * env, jclass obj, jstring jMsg) 
{
   printf("hello jni!\n");
}

5)生成动态库hello.dll 并将动态库文件所在的目录加到Path路径下。
备注:在生成hello.dll之前,将JDK目录下\include\jni.h 和include\win32\jni_md.h 这两文件放到c/c++工程所在目录下。
分享到:
评论

相关推荐

    jniDemo.zip

    这个"jniDemo.zip"文件显然提供了一个学习和实践JNI的示例项目,非常适合Java初学者想要了解如何在Java中调用本地(C或C++)代码。 首先,JNI的核心作用在于扩展Java的功能,当Java无法直接满足某些性能要求或者需要...

    JNI-DEMO.zip_DEMO_JNI DEMO_java JNI Demo_jni_leveldb jni demo

    Java Native Interface(JNI)是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。JNI在各种场景中都有应用,...这个DEMO对于初学者来说是一份宝贵的教育资源,有助于深入理解和掌握JNI的使用技巧。

    Android代码-安卓JNIdemo.zip

    【标题】"Android代码-安卓JNIdemo.zip"揭示了一个关于Android开发的主题,特别是涉及到JNI(Java Native Interface)技术的实践应用。JNI是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。在Android...

    给初学者的JNIDemo

    这篇文章“给初学者的JNIDemo”可能是通过一个实际的示例项目来介绍JNI的基础知识。作者just_hu可能讲解了如何创建和使用JNI接口,以及如何在Java和C/C++之间进行数据交换。 首先,JNI的核心概念包括: 1. **本地...

    Jnidemo-master.3.17.final.ok.rar

    《JNI与C编程实践——深度解析Jnidemo-master项目》 JNI(Java Native Interface)是Java平台中用于连接Java代码和本地(非Java)代码的关键技术。它允许开发者在Java程序中调用C/C++代码,反之亦然,极大地拓展了...

    JniDemo.zip

    这个"JniDemo.zip"文件提供了一个简单的JNI示例,对于初学者来说,是理解JNI工作原理和实践应用的一个良好起点。在这个压缩包中,我们只看到了一个名为"JniDemo"的文件,这很可能是一个包含Java源代码、C/C++源代码...

    JNIDemo.zip

    本篇文章将通过一个简单的示例——JNIDemo,深入讲解Android JNI开发的基本流程,帮助初学者快速入门。 首先,我们需要了解JNI的基本概念。JNI是一个接口,使得Java代码可以调用本地(native)代码,本地代码通常是...

    JNI DEMO:java jni技术 调用 c/c++ 的dll

    JNI(Java Native Interface)是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。...对于初学者,这是一个很好的实践教程,即使没有Java背景,也能通过提供的步骤理解和实践JNI调用DLL的过程。

    Jni调用Demo

    在"JnIDemo"这个压缩包中,可能包含了上述所有步骤的示例文件,包括Java源代码、生成的头文件、C/C++源代码以及编译后的动态链接库。初学者可以通过阅读和运行这些示例,理解JNI的工作原理和流程。 学习JNI调用的...

    android jni实用demo

    这个"android jni实用demo"应该包含了一个具体的示例项目,演示了上述知识点的实际应用,对于初学者来说是一个很好的实践教程。通过分析和运行这个项目,开发者可以更好地理解和掌握Android JNI的使用。

    JNI入门Demo1.0

    5. **在Java中调用本地方法**:最后,在Android应用的Java代码中实例化`JniDemo`类并调用`callCppCode()`方法,实际执行C++代码。 这个入门Demo1.0可能会包含一个简单的例子,比如从Java传递一个字符串到C++,在C++...

    简单的入门JNIdemo

    这个"简单的入门JNIdemo"是一个针对初学者的教程,旨在帮助开发者理解并开始使用JNI。以下是对这个入门Demo涉及的知识点的详细解释: 1. **JNI概述**: JNI是Java平台的标准接口,它允许Java程序调用本地(非Java...

    AS版本JNI Demo

    "AS版本JNI Demo"是一个适合初学者的项目,通过这个项目,我们可以学习如何在最新的AS环境中设置和使用JNI。 首先,我们需要理解JNI的核心概念。JNI提供了一个接口,让Java代码能够调用本地(native)代码,反之...

    安卓串口Socket通讯USB驱动jni相关-安卓JNIdemo.zip

    这个"安卓串口Socket通讯USB驱动jni相关-安卓JNIdemo.zip"资源包含了一个示例项目,展示了如何在Android平台上实现这些功能。让我们深入探讨一下其中涉及的关键知识点。 1. **串口通信**: - Android系统本身并不...

    JNI技术相关的三个Demo

    通过这三个Demo,初学者可以理解JNI的基本工作原理和使用方法。实践中,要特别注意异常处理,因为JNI调用可能会抛出异常,需要妥善处理。另外,多线程环境下使用JNI需谨慎,因为不恰当的同步可能导致数据竞争或其他...

    jni_demo.rar_DEMO_jni vc

    标题中的"jni_demo.rar_DEMO_jni vc"表明这是一个关于JNI (Java Native Interface)的示例,使用Visual C++(VC++)进行编程。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。这个RAR压缩包...

    jni调用第三方dll最简单的实例

    创建一个C/C++源文件,例如`JniDemo.c`,并包含`JniDemo.h`以及jni.h头文件: ```c #include "JniDemo.h" #include &lt;jni.h&gt; JNIEXPORT jint JNICALL Java_JniDemo_callDllFunction (JNIEnv *env, jobject obj, j...

    android jni demo

    通过学习和实践这个"android jni demo",初学者可以理解JNI的基本概念,熟悉从创建`native`方法到调用本地库的完整流程,以及如何在Android环境中进行C/C++代码的调试。这将为开发更复杂的Android原生功能打下坚实...

    Android JNI入门Demo

    这个"Android JNI入门Demo"是一个适合初学者了解和学习JNI基础操作的实践项目。 在Android开发中,JNI的应用场景广泛,例如:提升性能的关键算法实现、调用系统库、访问硬件设备、游戏开发中的图形渲染等。下面将...

    JNI应用简单的demo

    这个"JNI应用简单的demo"是一个很好的学习资源,对于初学者来说,它可以帮助理解JNI的基本概念和工作原理。下面我们将深入探讨这个话题。 首先,JNI提供了一种方式,使得Java程序能够调用本地(Native)代码,通常...

Global site tag (gtag.js) - Google Analytics