Java中使用JNI调用DLL
1 编写范例文档
/**
* @Package:
* @Title: TestNative.java
* @Author: zhangzuoqiang
* @Time: 5:08:48 PM Sep 17, 2011
* @Version:
*/
/**
* @Description:
* @Author: zhangzuoqiang
* @Date: Sep 17, 2011
*/
public class TestNative {
private native int add(int x, int y);
public static void main(String[] args) {
TestNative hh = new TestNative();
int r = hh.add(30, 20);
System.out.println("result = " + r);
}
static {
System.loadLibrary("NativeDemo");
}
}
#include "TestNative.h"
#include <jni.h>
JNIEXPORT jint JNICALL Java_TestNative_add
(JNIEnv *ev, jobject obj, jint x, jint y)
{
return x+y;
}
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class TestNative */
#ifndef _Included_TestNative
#define _Included_TestNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: TestNative
* Method: add
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_TestNative_add
(JNIEnv *, jobject, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
分享到:
相关推荐
在Visual Studio 2019中,你可以方便地利用这个特性来构建混合语言的应用,实现特定功能的优化或者充分利用已有的C++库。在实际开发中,需要注意处理好内存管理和线程安全问题,确保程序的稳定性和效率。
这个压缩包“安卓串口Socket通讯USB驱动jni相关-调用jni的简单例子.rar”提供了一个实例,帮助开发者理解如何在Android应用中使用JNI来实现串口、Socket通信以及USB驱动的操作。下面我们将详细探讨这些知识点。 1. ...
本教程将详细讲解如何在Visual Studio 2019环境下,利用C++通过Java Native Interface (JNI) 调用Java代码。首先,我们需要了解JNI的概念和作用。 JNI是Java平台提供的一种接口,允许Java代码和其他语言写的代码...
com.ice.jni.registry.RegMultiStringValue.class com.ice.jni.registry.RegBinaryValue.class com.ice.jni.registry.RegistryException.class com.ice.jni.registry.NoSuchValueException.class ...
META-INF/MANIFEST.MF com.ice.jni.registry.HexNumberFormat.class com.ice.jni.registry.NoSuchKeyException.class com.ice.jni.registry.NoSuchValueException.class com.ice.jni.registry.RegBinaryValue.class ...
在这个场景中,我们关注的是`jni.h`文件,它是JNI接口定义的核心头文件。 `jni.h`文件包含了所有JNI函数的声明,这些函数允许Java虚拟机(JVM)与本地代码(即非Java语言编写的代码)进行通信。当你在Java程序中...
Android Studio 3.0 JNI的简单实现...........................................................................
#include <jni.h> #include extern "C" JNIEXPORT jstring JNICALL Java_com_example_yipjnidemo_MyJniClass_stringFromJNI( JNIEnv *env, jobject /* this */) { std::string hello = "Hello from C++"; ...
本示例是关于如何在Eclipse开发环境中结合Microsoft Visual Studio 2010来实现JNI程序开发的一个详细教程。 首先,我们需要理解JNI的核心概念。JNI允许Java应用程序调用本地(非Java)代码,比如C++,并反之亦然。...
自己收集的JNI学习资料(包括JAVA初级教程 j-jni.zip JNI.pdf jni(1).pdf ), 个人认为内容很全,尤其是j-jni.zip 里面是IBM的在线教程,非常实用,理论例子都很全,是JNI学习的入门帮手.
总结来说,`jni.pas`和`JNI_MD.INC`是Delphi开发者使用JNI的关键组件,它们使得Delphi程序能够无缝地与Java世界交互,扩大了Delphi的应用范围,特别是在需要与已有的Java系统集成或者利用特定平台原生功能时。...
3. **实现本地方法**:在生成的C/C++源文件中实现本地方法,这里会用到`jni.h`中定义的各种函数。 4. **编译本地库**:将实现的C/C++代码编译为动态链接库或静态库,依赖于目标平台。 5. **加载本地库**:在Java代码...
这个“jni最简单例子,注释详细”应该是提供了一个基础的JNI学习教程,下面我们将深入探讨JNI的相关知识点。 1. **JNI概述** JNI是一种接口,使得Java应用程序可以调用本地(非Java)代码,也可以让本地代码调用...
JNI 静态注册 so 和 IDA 导入的 JNI.h 文件
通过这个项目,开发者不仅可以学习到如何编写和使用JNI,还能了解到Java与本地代码的协同工作原理,这对于在性能要求高的场景下优化Java应用或者利用已有的C/C++库是非常有帮助的。 总结来说,"Jnidemo-master.3.17...
JNI,全称Java Native Interface,...在提供的压缩包`jni.zip`中,包括了`jni.h`和`jni_md.h`两个头文件,它们是进行JNI编程的基础。开发者可以下载这些文件,以便在自己的项目中引用,从而实现Java和本地代码的交互。
2. **头文件和库**:JNI开发需要包含jni.h头文件,并创建动态链接库(DLL on Windows,.so on Linux,dylib on macOS)来包含本地方法的实现。 3. **JNIEnv指针**:JNIEnv是一个指向一组函数指针的指针,这些函数...
JNI 简介与实现.zip
通过研究JNIDemo Master 3.17.final.ok项目,开发者不仅能掌握JNI的基本用法,还能了解到在实际项目中如何有效地利用JNI来解决特定问题。对于那些希望将Java与本地代码集成或者需要高性能计算的开发者来说,这是一个...
jni4net是一个强大的工具,它实现了Java和.NET之间的互操作性,允许Java应用程序调用C#编写的DLL库。在标题“jni4net-0.8.8.0.zip”中,我们可以看出这是jni4net的一个特定版本,即0.8.8.0。这个压缩包通常包含了该...