`

java调用dll之JNative学习笔记(JNI组件)

阅读更多
java调用dll之JNative学习笔记(JNI组件)

http://hi.baidu.com/wtltsdwqt/blog/item/144bb512df469ec9c2fd7878.html


下载地址:

JNative_1.4RC2_src.zip : http://jaist.dl.sourceforge.net/sourceforge/jnative/JNative_1.4RC2_src.zip

JNative.jar : http://nchc.dl.sourceforge.net/sourceforge/jnative/JNative.jar

如果以上版本不能完成下载,说明版本有可能更新,请从以下地址中下载:

Resource URL: http://jnative.sourceforge.net/

Source Code: http://sourceforge.net/projects/jnative

Detailed Review: http://jnative.free.fr

JavaDOC: http://jnative.free.fr/docs/

JNative相对于其它同类开源组件的优点:

1.容易使用

2.对数据类型的处理做的出色

3.支持CallBack

下面以一个小Demo来学习一下JNative:

1.理解文件用途

JNative_1.4RC2_src.zip是JNative源代码的压缩包把它解压后从中找到libJNativeCpp.so和JNativeCpp.dll两个文件.JNativeCpp.dll应用在Windows平台下.把它放在c:\windows\system32目录下.libJNativeCpp.so应用在Linux平台下.放在哪个目录,这个我不知道.

把JNative.jar加入到所需的工程中.

把要调用的dll文件也放在c:\windows\system32目录下

2.测试类

package com.xgz.jnative;

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;

public class Test {

public static void main(String[] args)throws Exception {
   //系统加载dll文件有两种写法1.loadLibrary方法:把dll文件拷贝到c:\windows\system32目录下,引用时只需写dll名字2.load方法:写dll文件的完整路径
   System.loadLibrary("InterfaceFun");//InterfaceFun是dll文件
   //参数说明InterfaceFun dll名,AddZhiYe函数名
   JNative jnative = new JNative("InterfaceFun","AddZhiYe");
   //设置此函数的返回值
   jnative.setRetVal(Type.INT);
   int i=0;
   //赋予参数值
   jnative.setParameter(i++, Type.STRING,"127.0.0.1");
   jnative.setParameter(i++, Type.STRING,"sa");
   jnative.setParameter(i++, Type.STRING,"sa");
   jnative.setParameter(i++, Type.STRING,"程序员");
   jnative.setParameter(i++, Type.INT,"23");
   jnative.setParameter(i++, Type.INT,"23");
   //函数执行
   jnative.invoke();
   //打印函数返回值
   System.out.println(Integer.parseInt(jnative.getRetVal()));
}

}
分享到:
评论
1 楼 老梦a 2012-07-06  
读取射频卡数据的话,是在dll中实现吗,还是需要用C另行实现?然后java负责接收,再返回到前台?

如果是C实现的话主要方法什么比较快捷?

相关推荐

    java调用DLL:JNative

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

    在Java程序中使用JNative调用dll文件

    在Java程序中调用DLL(动态链接库)文件通常是通过JNI(Java Native Interface)来实现的,而JNative是JNI的一个封装库,它提供了一种更简洁的方式来调用C/C++编写的本地代码。这篇博客文章可能介绍了如何利用...

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

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

    Java调用DLL的工具 JNative

    Java调用DLL的工具JNative是为了解决Java应用程序与本地动态链接库(DLL)交互问题而设计的一个开源组件。在传统的Java开发中,如果需要调用非Java编写的库,比如C或C++编译的DLL,通常会使用JNI(Java Native ...

    Java调用DLL例子

    本示例以"Java调用DLL例子"为主题,使用了JNative库作为接口来实现Java调用本地动态链接库。 JNative是一个开源的Java库,它提供了一种方法使得Java程序能够直接调用C/C++编写的函数,从而间接实现了调用DLL的功能...

    JAVA调用DLL方法 JAVA调用DLL方

    在Java中调用DLL文件主要通过Java Native Interface (JNI)、JAWINJNative和JNA等技术来实现。这些技术允许Java程序与本地代码进行交互,从而实现对DLL文件的调用。 #### JNI (Java Native Interface) JNI是Java...

    Java调用Win32获取窗口句柄JNative-1.3.2

    JNative库是实现这一目标的一种工具,它允许Java代码通过JNI(Java Native Interface)来调用C/C++编写的本地代码,进而调用Win32 API。JNative-1.3.2版本提供了对这一功能的支持。 首先,我们来理解一下Java ...

    YiKaTong.rar_JNative_YiKaTong.r_java jnative dll_jnative api_jna

    3. **yikatong.r.java**:这可能是项目中定义的Java源代码文件,包含了使用JNative调用DLL的Java类。在这个文件中,开发者会定义本地方法签名,然后通过JNative API来实现具体的调用。 4. **jnative.dll**:这是一...

    JAVA如何调用dll:用JNI调用C或C++动态联接库

    Java 调用DLL(动态链接库)主要是通过JNI(Java Native Interface)技术来实现的。JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。在本例中,我们将详细介绍如何使用JNI调用C或C++编写的DLL...

    JNA.jar-JNative.jar-dll创建-JAVA调用-VC调用

    标题中的“JNA.jar-JNative.jar-dll创建-JAVA调用-VC调用”涉及到的是Java平台下通过JNI(Java Native Interface)的两种实现方式,JNA(Java Native Access)和JNative,来与C/C++编写的动态链接库(DLL)进行交互...

    java调用DLL文件

    Java本身并不直接支持加载和调用DLL,但可以通过第三方库如JNative来实现这一目标。本文将详细介绍如何在Java中使用JNative库来调用DLL文件。 首先,理解DLL文件:DLL(Dynamic Link Library)是Windows操作系统中...

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

    `JNative-1.3.2`是一个开源组件,专门设计用于帮助Java应用程序调用Windows平台上的DLL(动态链接库)文件,同时也支持Linux平台下的SO(共享对象)文件。下面我们将详细介绍这个组件的使用方法、工作原理及相关知识...

    Java调用DLL源代码

    总结起来,Java调用DLL是Java与本地系统交互的重要手段,通过JNA和JNative,开发者可以在Java应用程序中利用C/C++库的功能,增强程序的能力。这两种技术各有优缺点,选择哪种取决于项目需求和开发者的技术背景。理解...

    java调用dll必备jar包

    Java调用DLL(动态链接库)是Java编程中的一项高级技术,主要应用于Java与本地代码交互,例如在Java中利用C++或C编写的库。本文将详细介绍如何使用Java调用DLL以及所需的必备jar包。 首先,Java并不直接支持DLL的...

    Java本地调用接口 JNative

    Java本地调用接口(Java Native Interface,简称JNI)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在很多场景下都扮演着关键角色,比如当需要访问操作系统特定功能、优化性能或者利用已...

    jnative框架调用dll动态库-简单demo(带dll文件).zip

    本篇文章将详细介绍如何使用jnative框架在Java中调用DLL动态库,并提供一个简单的示例。 首先,理解jnative框架的核心概念。jnative是一个纯Java库,它提供了一种简单的方式来调用C和C++的函数,无需编写JNI头文件...

    简单jnative调用dll例子(含dll代码)

    首先定义Java中的JNI接口,然后使用`javah`生成C/C++的头文件,接着编写并编译DLL,最后在Java程序中加载并调用DLL函数。这个过程虽然复杂,但是一旦熟悉了,就能灵活地在Java和本地代码之间建立桥梁,充分利用两者...

    Java本地调用接口 JNative.7z

    总结来说,"Java本地调用接口 JNative.7z"是一个关于JNI技术的资源包,其中可能包含了示例代码和库文件,可以帮助开发者学习和理解如何在Java项目中集成和使用本地代码,提升程序性能或实现特定功能。通过学习和实践...

    JNA.jar-JNative.jar-jinvoke.jar-dll创建-JAVA调用-VC调用

    总的来说,这个压缩包提供了Java调用C/C++ DLL的各种方法的实例,对于理解跨语言通信和本地库调用有很好的学习价值。无论是使用JNA的简洁性,还是JNative和jinvoke的灵活性,都能帮助开发者根据具体需求选择合适的...

    Java调用dll

    首先,JNI(Java Native Interface)是Java平台标准的一部分,它提供了一种机制,让Java代码可以调用本地(非Java)代码,包括C++编写的DLL。JNI头文件位于`C:\Program Files\Java\jdk1.6\include`目录下,包含了...

Global site tag (gtag.js) - Google Analytics