这个小例子用JNI调用了VC++做的DLL动态库。
1、总体说明:
实现一个函数,传入整形数i,返回值i*i,这个函数做在DLL中,java将通过JNI调用这个函数,传入一个参数,得到返回值。
确定DLL的名称为calldll.dll,函数shanfei(int i)。
2、编写java程序javacall.java,如下:
public class javacall
{
static
{
System.loadLibrary("calldll");
}
public native static int shanfei(int i);
public static void main(String[] args)
{
javacall jc = new javacall();
int j;
j = jc.shanfei(4);
System.out.println(j);
}
}
3、编译
javac javacall.java
4、生成头文件
javah javacall
生成javacall.h文件
5、制作VC++动态库
建立新DLL工程,程序中添加:
#include "javacall.h"
JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p)
{
int j = p*p;
return j;
}
别忘了将javacall.h复制到VC工程目录中,然后编译,如果编译说找不到jni.h文件,可以将jni.h复制到工程目录中,还可将javacall.h文件中的#include <jni.h>改为#include "jni.h",再编译。
6、java调用
将生成的calldll.dll文件复制到javacall.java所在的目录中,运行
java javacall,应该可以看到运行结果。
分享到:
相关推荐
### JAVA调用DLL方法 在跨平台开发领域中,Java作为一种强大的编程语言,因其具有良好的移植性和跨平台性而被广泛使用。然而,在某些特定情况下,我们可能需要调用本地库(例如DLL文件)来实现特定功能或提高性能。...
Java本身并不直接支持加载和调用DLL,但可以通过第三方库如JNative来实现这一目标。本文将详细介绍如何在Java中使用JNative库来调用DLL文件。 首先,理解DLL文件:DLL(Dynamic Link Library)是Windows操作系统中...
本话题主要聚焦于如何在Java中调用DLL来实现DES(Data Encryption Standard)加密和解密操作。DES是一种广泛使用的对称加密算法,适用于保护数据的安全性。 首先,为了在Java中调用DLL,我们需要一个中间层,通常是...
java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...
### Java调用DLL:JNative概述 在Java项目中,有时候需要调用本地系统的动态链接库(DLL)来实现特定的功能。传统的做法是通过Java Native Interface (JNI)来进行调用,但这往往涉及到复杂的配置和繁琐的过程。为了...
Java调用Qt DLL是一个跨平台的技术实践,涉及到Java与C++之间的互操作性,其中Qt是一个流行的C++库,主要用于图形用户界面开发。这个主题主要包含以下几个知识点: 1. **JNI(Java Native Interface)**:JNI是Java...
在Java中调用DLL(Dynamic Link Library)文件,可以使用Java的本地方法接口(JNI,Java Native Interface)来实现。JNI允许Java程序与本地代码进行交互,从而实现跨平台的功能。
### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...
JAVA 调用 C# 编写的 DLL 例子 在本篇文章中,我们将详细介绍如何使用 JAVA 调用 C# 编写的 DLL 文件。首先,我们需要了解什么是 DLL 文件,以及它在编程中的应用。 DLL 文件是一种动态链接库文件,它可以被多个...
标题中的“java调用dll实现键盘的屏蔽”指的是在Java程序中通过动态链接库(DLL)来阻止键盘输入。这是一个常见的需求,特别是在自动化测试、安全软件或者某些特殊应用环境中,可能需要防止用户通过键盘进行输入干扰...
Java调用DLL和OCX是将Java语言与Windows平台下的动态链接库(DLL)和控件(OCX)集成的一种技术。DLL是Windows系统中的一种共享库,它包含可由多个程序同时使用的代码和数据。而OCX是ActiveX控件,主要用于Windows...
Java调用DLL文件是软件开发中的常见需求,尤其是在Java与C/C++混合编程时。`JNative-1.3.2`是一个开源组件,专门设计用于帮助Java应用程序调用Windows平台上的DLL(动态链接库)文件,同时也支持Linux平台下的SO...
在Java编程环境中,有时我们需要与操作系统底层功能进行交互,例如调用C语言编写的动态链接库(DLL)函数。在这种情况下,Java Native ...JNA测试项目"JNATest"可能包含一个完整的示例,演示如何从Java调用DLL并运行。
java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)
Java调用DLL文件是将Java程序与C/C++编写的动态链接库进行交互的技术,主要应用于需要利用非Java原生功能或与已有C/C++库集成的场景。本资料包"jni_java_dll_jsp.zip"提供了关于这个主题的详细资料,特别是针对...
Java本身具有垃圾回收机制,能够自动管理内存,但在调用DLL时,由于这部分代码是运行在C/C++环境中,不遵循Java的内存管理规则。如果DLL中分配了内存但未正确释放,或者Java和DLL之间对对象的引用处理不当,都可能...
Java调用DLL是一种常见的跨语言交互技术,允许Java应用程序利用C++编译的动态链接库(DLL)中的功能。在本场景中,我们有一个Win7 64位系统,使用了1.6版本的JDK,并且用Visual Studio C++创建了一个64位的DLL。以下...
Java通过JNI调用DLL动态库,亲测试编写
Java 调用DLL(动态链接库)主要是通过JNI(Java Native Interface)技术来实现的。JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。在本例中,我们将详细介绍如何使用JNI调用C或C++编写的DLL...
Java连接调用DLL动态库是将Java编程语言与Windows平台上的动态链接库(DLL)集成的一种技术。在Java中,这种功能通常是通过JNI(Java Native Interface)实现的,它允许Java代码调用C、C++等本地代码,而DLL正是这些...