下载地址:

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.测试类

    1. package sms;
    2. import org.xvolks.jnative.JNative;
    3. import org.xvolks.jnative.exceptions.NativeException;
    4. import org.xvolks.jnative.pointers.Pointer;
    5. import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
    6. public class SystemTime extends org.xvolks.jnative.util.Kernel32.SystemTime {
    7. public short wYear;
    8. public short wMonth;
    9. public short wDayOfWeek;
    10. public short wDay;
    11. public short wHour;
    12. public short wMinute;
    13. public short wSecond;
    14. public short wMilliseconds;
    15. /**
    16. * 分配内存,并返回指针
    17. */
    18. public Pointer createPointer() throws NativeException {
    19. pointer = new Pointer(MemoryBlockFactory.createMemoryBlock(getSizeOf()));
    20. return pointer;
    21. }
    22. /**
    23. * 内存大小
    24. */
    25. public int getSizeOf(){
    26. return 8 * 2;
    27. }
    28. /**
    29. * 获取通过内存指针解析出结果
    30. */
    31. public SystemTime getValueFromPointer() throws NativeException {
    32. wYear = getNextShort();
    33. wMonth = getNextShort();
    34. wDayOfWeek = getNextShort();
    35. wDay = getNextShort();
    36. wHour = getNextShort();
    37. wMinute = getNextShort();
    38. wSecond = getNextShort();
    39. wMilliseconds = getNextShort();
    40. return this;
    41. }
    42. public SystemTime() throws NativeException{
    43. super();
    44. createPointer();
    45. }
    46. public String toString(){
    47. return wYear + "/" + wMonth + "/" + wDay + " at + " + wHour + ":" + wMinute + ":" + wSecond + ":" + wMilliseconds;
    48. }
    49. public static SystemTime GetSystemTime() throws NativeException, IllegalAccessException {
    50. // 创建对象
    51. JNative nGetSystemTime = new JNative("Kernel32.dll", "GetSystemTime");
    52. //GetSystemTime  是dll中的方法
    53. SystemTime systemTime = new SystemTime();
    54. // 设置参数
    55. nGetSystemTime.setParameter(0, systemTime.getPointer());
    56. //执行方法
    57. nGetSystemTime.invoke();
    58. // 解析结构指针内容
    59. return systemTime.getValueFromPointer();
    60. }
    61. public static void main(String[] args) throws NativeException, IllegalAccessException{
    62. System.err.println(GetSystemTime());
    63. }
    64. }

jnative 使用的更多相关文章

  1. JNative library not loaded, sorry ! win7 64位系统

    java调用动态链接库时,使用myeclipse或者其他IDE工具时,针对于web程序,会报这样的错误: java.lang.IllegalStateException: JNative librar ...

  2. JAVA调用动态链接库DLL之JNative学习

    package com.ehfscliax; import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import ...

  3. JNative 传递参数bug

    下载JNative网址:http://sourceforge.net/projects/jnative/files/jnative/ 下载JNative版本:JNative_1.4RC3_bin.zi ...

  4. java JNative调用DLL中带引用类型的方法

    DLL中的被调函数有两个参数,第二个参数是int64类型的引用类型,因此创建8byte的MemoryBlock: JNative n = null;  try {   n = new JNative( ...

  5. Java调用DLL有多种方式,常用的方式有JNative、JNA、JNI等。

    JNative方式调用dll JNative是一种能够使Java语言使调用DLL的一种技术,对JNI进行了封装,可能有些读者会有这样一个问题,JNative对JNI进行了封装,并且是一种跨语言的使用D ...

  6. JNative用法注意事项

    公司要做个跟设备打交道的web系统,需要java调用dll.搞java的同事说JNative看起来挺好使的,找俺帮忙调通.用的是1.3.1版本 环境设置. JNative的调试信息需要打开才能更清楚些 ...

  7. Java使用JNative调用DLL库

    编写测试DLL文件,源文件参照JNA调用用的DLL文件.地址:http://www.cnblogs.com/vevy/p/9076941.html (很重要)右键项目 --> 属性 --> ...

  8. 2、Java调用C语言(JNative法)

    这个方法也是挺麻烦的…… 一.下载JNative.jar,把它放在你jdk下的\jre\lib\ext目录下 二.在 F:\MinGW\JNative 新建 Test.java: public cla ...

  9. 学习JNA,Jnative

    首先说下JAVA调用DLL,Java调用DLL的常用方法大致为几种,JNI,JNA,Jnative等,但实现与易用性差距还是很大,1.JNI用的人比较多,但相对来说比较麻烦要熟悉c并且要使用javac ...

随机推荐

  1. MS-SQL 时间的操作

    1. 当前系统日期.时间 select getdate()  2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd ...

  2. c# 串口操作

    public class CommPort : IDisposable { public string Port = ""; ///<summary> ///波特率96 ...

  3. session会话

    jsp会话篇session: package com.log; import java.io.IOException; import java.util.ArrayList; import java. ...

  4. MFC制作简单通讯录程序

    学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...

  5. Failed to crunch file

    Failed to crunch file 编译时,出现以上错误,经过多次排除验证,原因尽然是因为路径字符太长了... 编译路径不能超过240个字符

  6. JFinal视频教程-JFnal学院分享课

    最近JFinal学院出了JFinal视频教程分享课,请笑纳~ 课程列表: 1.[JFinal版]微信小程序富文本渲染解决方案-html2wxml4J分享课 这个课程主要讲的是使用基于JFinal开发的 ...

  7. 【虚拟机-网关】如何在使用应用程序网关和 Nginx 的环境下实现强制 HTTPS 跳转

    背景介绍 大家在使用 Nginx 部署网站时,实现 HTTP 到 HTTPS 的强制跳转是非常容易的事情,一般可以使用rewrite 命令或者使用返回自定义 301 页面的方法对 HTTP 请求进行 ...

  8. POJ 1185 炮兵阵地 (状压DP,轮廓线DP)

    题意: 给一个n*m的矩阵,每个格子中有'P'或者'H',分别表示平地和高原,平地可以摆放大炮,而大炮的攻击范围在4个方向都是2格(除了自身位置),攻击范围内不能有其他炮,问最多能放多少个炮?(n&l ...

  9. 前端面试题总结(三)JavaScript篇

    前端面试题总结(三)JavaScript篇 一.谈谈对this的理解? this是一个关键字. this总是指向函数的直接调用者(而非间接调用者). 如果有new关键字,this指向new出来的那个对 ...

  10. duboo 配置文件

    官方文档 http://dubbo.apache.org/en-us/docs/user/quick-start.html 自己的 <?xml version="1.0" e ...