`
chunchong
  • 浏览: 38871 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java调用dll备忘

    博客分类:
  • java
阅读更多

这个小例子用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调用动态链接库(Java 调用 DLL)

    Java本身不支持直接调用DLL,但可以通过JNI(Java Native Interface)或者第三方库如JNA(Java Native Access)来实现这一功能。 首先,我们来看JNI。JNI是Java平台标准的一部分,它为Java程序员提供了一种安全、...

    java调用dll最简单的方法

    在Java中调用DLL(Dynamic Link Library)文件,可以使用Java的本地方法接口(JNI,Java Native Interface)来实现。JNI允许Java程序与本地代码进行交互,从而实现跨平台的功能。

    JAVA调用DLL方法 JAVA调用DLL方

    ### JAVA调用DLL方法 在跨平台开发领域中,Java作为一种强大的编程语言,因其具有良好的移植性和跨平台性而被广泛使用。然而,在某些特定情况下,我们可能需要调用本地库(例如DLL文件)来实现特定功能或提高性能。...

    亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。

    Java调用DLL函数是跨平台编程中的一种常见需求,特别是在Java与C/C++代码交互时。JNA(Java Native Access)是Java平台上的一个库,它允许Java代码直接调用本机库(如DLL文件)的函数,而无需编写JNI(Java Native ...

    Java调用dll实现des加密解密

    本话题主要聚焦于如何在Java中调用DLL来实现DES(Data Encryption Standard)加密和解密操作。DES是一种广泛使用的对称加密算法,适用于保护数据的安全性。 首先,为了在Java中调用DLL,我们需要一个中间层,通常是...

    Java调用Qt DLL

    Java调用Qt DLL是一个跨平台的技术实践,涉及到Java与C++之间的互操作性,其中Qt是一个流行的C++库,主要用于图形用户界面开发。这个主题主要包含以下几个知识点: 1. **JNI(Java Native Interface)**:JNI是Java...

    java调用本地dll的几种方法性能对比测试

    java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...

    java调用DLL:JNative

    ### Java调用DLL:JNative概述 在Java项目中,有时候需要调用本地系统的动态链接库(DLL)来实现特定的功能。传统的做法是通过Java Native Interface (JNI)来进行调用,但这往往涉及到复杂的配置和繁琐的过程。为了...

    java调用C#封装的dll方法

    ### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...

    JAVA调用C#写的DLL例子

    JAVA 调用 C# 编写的 DLL 例子 在本篇文章中,我们将详细介绍如何使用 JAVA 调用 C# 编写的 DLL 文件。首先,我们需要了解什么是 DLL 文件,以及它在编程中的应用。 DLL 文件是一种动态链接库文件,它可以被多个...

    java用JNA调用dll实例,包含各种参数调用

    你需要定义一个接口,该接口的每个方法对应DLL中的一个函数,然后使用`NativeLibrary`类加载DLL,并将接口实例化,这样就可以在Java中直接调用DLL函数了。 1. **基本数据类型**:JNA支持Java的基本数据类型如int、...

    java调用dll

    ### Java调用DLL详解 在跨平台开发领域,Java凭借其强大的兼容性和广泛的适用性而备受青睐。然而,在某些特定场景下,如底层硬件访问、高性能计算或与已有C/C++库集成时,直接利用Java可能无法达到最优效果。这时,...

    java调用dll实现键盘的屏蔽

    标题中的“java调用dll实现键盘的屏蔽”指的是在Java程序中通过动态链接库(DLL)来阻止键盘输入。这是一个常见的需求,特别是在自动化测试、安全软件或者某些特殊应用环境中,可能需要防止用户通过键盘进行输入干扰...

    JAVA-dll-ocx.rar_Java调用dll_dll ocx_java EdisonSmsGw.ocx_java 调用o

    Java调用DLL和OCX是将Java语言与Windows平台下的动态链接库(DLL)和控件(OCX)集成的一种技术。DLL是Windows系统中的一种共享库,它包含可由多个程序同时使用的代码和数据。而OCX是ActiveX控件,主要用于Windows...

    Java调用dll文件开源组件jar包及说明文档

    Java调用DLL文件是软件开发中的常见需求,尤其是在Java与C/C++混合编程时。`JNative-1.3.2`是一个开源组件,专门设计用于帮助Java应用程序调用Windows平台上的DLL(动态链接库)文件,同时也支持Linux平台下的SO...

    JNA方式实现Java调用dll的必用jar包

    标题"JNA方式实现Java调用dll的必用jar包"指的是使用JNA库来调用Windows平台上的动态链接库(.dll文件)所需的Java类库。这个"jna5.jar"文件是JNA的一个版本,其中包含了所有必要的组件,使得Java程序能够通过JNA...

    JAVA利用JNA调用DLL

    在Java编程环境中,有时我们需要与操作系统底层功能进行交互,例如调用C语言编写的动态链接库(DLL)函数。在这种情况下,Java Native ...JNA测试项目"JNATest"可能包含一个完整的示例,演示如何从Java调用DLL并运行。

    Jna调用dll实例

    总结来说,JNA调用DLL的关键步骤包括:定义DLL接口,加载DLL,调用DLL函数,并处理可能出现的编码问题。本实例提供了一个具体的应用场景,有助于理解JNA调用DLL的过程,并解决了常见的中文乱码问题。通过学习和实践...

    java调用C#封装的dll(jna,com)

    java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)

    非常好用java调用c++ dll文件demo

    5. **调用DLL方法**:现在,Java程序可以通过JNI接口调用DLL文件中的函数。 在提供的"java_dll_sample"压缩包中,可能包含以下元素: - `Java调用C++ DLL的Java类`:这个类会声明`native`方法,并在运行时通过`...

Global site tag (gtag.js) - Google Analytics