`
liufei.fir
  • 浏览: 688163 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java调用动态链接库

阅读更多
用java调用dll本是一个不难的事情,但往往会给初学者带来的一点麻烦,网络上很多调用dll的例子都参差不齐,往往省略了一些步骤,对他们来说觉得简单不需要说明,对初学者来说确很重要,结果不想可知。因此在这里仔细的说明一下,希望给初学者们带来些许方便,高手绕过。。

一,首先在C盘建立项目文件夹jnitest,然后建立hello文件夹,在hello文件夹下放入Test.java,即在

C:\jnitest\hello下放入Test.java,

Test.java的内容为:

package hello;

class Test {
static {
   System.loadLibrary("TestDll");
}

public static void main(String ar[]) {
   System.out.println("Hello world from Java");
   Test t = new Test();
   int a = 1, b = 1;
   int c = t.add(a, b);
   System.out.println(c);
}

public native int add(int a, int b);
}

二,启动cmd命令行工具,切换到项目文件夹的目录(C:\jnitest>),然后输入javac hello\Test.java,即cmd最终显示为:C:\jnitest>javac hello\Test.java,接着执行C:\jnitest>javah hello.Test。所有命令

都注意下大小写。最终会在C:\jnitest下生成hello_Test.h头文件。

三,打开Vc++ 6.0,新建-》工程-》Win32 Dynamic-Link Library,工程名称为TestDll,点确定,然后

选择“一个简单的DLL工程”,按完成。

四,将hello_Test.h拷贝到VC的TestDll项目的文件夹下,在VC6.0界面中左方导航中选择“FileView”选择

Header Files点右键-》添加文件到目录,然后选中hello_Test.h。

五,打开TestDll.cpp,修改内容为:

// TestDll.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "hello_Test.h"

JNIEXPORT jint JNICALL Java_hello_Test_add
(JNIEnv *, jobject, jint a, jint b)
{
return a+b;
}

六,点菜单“工具”-》选项-》目录,这里应添加jdk的头文件路径,添加两个。我的为H:\JDK1.5.0_16

\INCLUDE和H:\JDK1.5.0_16\INCLUDE\WIN32。

七,编译项目文件。

八,将编译生成的TestDll.dll拷贝到和hello_Test.h相同的目录下,在我这边既是C:\jnitest。(既C:\jnitest下有TestDll.dll和hello_Test.h)。

九,在cmd命令行C:\jnitest>下输入java hello.Test,即可看到结果。

十。输出为:Hello world from Java
                    2

分享到:
评论
1 楼 sea0108 2011-03-11  
写的很详细。 

相关推荐

    Java调用动态链接库(Java 调用 DLL)

    Java调用动态链接库(DLL)是Java编程中一个比较特殊的技术,主要涉及到Java与本地代码的交互。在Windows系统中,DLL(Dynamic Link Library)是实现函数复用的一种方式,它包含了一系列可供其他程序调用的函数或数据...

    java调用动态链接库实例 java调用动态链接库实例 java调用动态链接库实例

    下面我们将详细讨论如何在Java中调用动态链接库,并以Linux环境下的SO库为例,提供一个实例。 1. **Java Native Interface (JNI)**: JNI是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。JNI...

    Java调用动态链接库通用方法.doc

    ### Java调用动态链接库通用方法 #### 一、概述 在现代软件开发过程中,不同编程语言间的相互调用十分常见。例如,在Java程序中调用C语言编写的动态链接库(Dynamic Link Library,简称DLL),能够充分利用底层...

    java调用动态链接库dll

    ### Java调用动态链接库DLL #### 为什么需要JNA? Java作为一种强大的编程语言,在许多领域都有着广泛的应用。然而,由于其本质上的解释性特点,Java对于原生系统的调用一直存在着一定的限制。为了增强Java平台的...

    java调用动态链接库1.doc

    ### Java调用动态链接库(DLL)详解 #### 一、引言 Java作为一种跨平台的语言,能够通过JNI(Java Native Interface)接口调用本地代码(如C/C++)。这在处理特定硬件交互或利用已有高性能C/C++库时非常有用。本文...

    java调用动态链接库例程(测试通过)及库包 jna4.3

    总结一下,这个压缩包提供了使用JNA 4.3在Java中调用动态链接库的完整示例。`mathfundll.dll`是待调用的底层库,`mathfundll.java`定义了与DLL函数对应的Java接口,而`testmathfundll.java`则包含了测试代码,确保...

    JAVA调用动态链接库DLL之JNative学习源码

    `JNative` 是一个用于Java调用本地代码(如DLL)的开源库,它提供了一个方便的接口,使得Java程序员可以轻松地与动态链接库进行交互。本教程将围绕如何使用`JNative`来调用DLL进行深入讲解。 首先,我们要理解Java...

    JNative Java调用动态链接库jar包

    此时,我们通常需要借助于本地代码,也就是C、C++编写的动态链接库(DLL,Windows下)或共享库(Linux下)。JNative是一个Java库,它为Java程序员提供了一种直接调用这些本地代码的能力,无需通过JNI(Java Native ...

    java调用C++动态链接库dll接口

    本项目涉及的"java调用C++动态链接库dll接口"是解决这种跨语言交互问题的一种方法,主要利用了Java Native Interface(JNA)这一技术。 JNA是Java平台的标准库,它允许Java代码直接调用本机库(如DLL或.so文件)的...

    Java JNI调用动态库(Linux、Windows)的实现步骤

    本篇文档将详细介绍如何在 Linux 和 Windows 平台上使用 Java 调用动态链接库(DLL 在 Windows 上称为 .dll 文件,在 Linux 上称为 .so 文件)。这通常涉及到三个主要步骤:编写 Java 接口、定义 C/C++ 头文件和实现...

    java调用C的动态链接库

    在Java编程环境中,有时我们需要利用C语言编写的高效或特定功能的库,这时可以借助Java Native Interface (JNI) 来实现Java调用C的动态链接库。以下将详细讲解这一技术。 1. Java Native Interface (JNI) JNI是...

    java调用c++动态链接库输出

    当Java需要调用C++编写的动态链接库(DLL)时,可以通过Java Native Interface (JNI) 或 Java Access Bridge (JNA) 来实现。本文将详细介绍如何创建C++动态链接库,并讨论如何让Java应用程序调用这些库。 1. 创建...

    java调用C语言动态链接库DLL/so

    java调用C语言动态链接库

    java 调用动态库

    在Java编程中,有时我们需要利用Java来调用操作系统级别的功能,这些功能往往存在于动态链接库(DLL)中,特别是在Windows环境下。本篇文章将详细介绍如何在Java中调用动态库,主要涉及两种方法:JNative和JNI(Java...

    Java调用C++动态库

    通过JNI,Java可以创建C++动态链接库(DLL)的实例,并调用其中的方法。这个过程涉及以下几个步骤: 1. **编写JNI头文件**:使用`javah`工具,根据Java中的native方法声明生成对应的C/C++头文件。这个头文件定义了...

    java调用delphi动态库的实例

    本文将深入探讨如何使用Java调用由Delphi编译的动态链接库(DLL),以此实现两者之间的交互。这个实例对于理解Java的JNI(Java Native Interface)和Delphi的DLL导出函数至关重要。 首先,我们需要了解Java的JNI...

    java程序中加载动态链接库文件

    这时,就需要借助于Java Native Interface (JNI) 来调用C/C++编写的动态链接库(DLL或SO文件),从而实现对底层硬件的访问或其他特定需求。 #### 二、Java Native Interface (JNI) Java Native Interface 是Java平台...

Global site tag (gtag.js) - Google Analytics