`
touchmm
  • 浏览: 1038360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用JNA 调用WINDOWS API

阅读更多

在我接触JNA之前一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用,于是下回来按网站上的例子试试了 还不错,因此还有点兴趣了,于是又自己写了 2个发挥了一下。

GetLogicalDriveStringsA【获取本地系统逻辑盘符】

GetSystemDirectoryA 【获取系统目录】

publicinterfaceKernel32extendsLibrary{

Kernel32INSTANCE
=(Kernel32)Native.loadLibrary("kernel32",Kernel32.class);
intGetLogicalDriveStringsA(intlength,byte[]buffer);
intGetSystemDirectoryA(byte[]buffer,intsize);
}

调用的方式为:

publicclassMainDemo...{

publicstaticvoidmain(String[]args)...{
Kernel32lib
=Kernel32.INSTANCE;
byte[]buffer2=newbyte[100];
lib.GetLogicalDriveStringsA(buffer2.length
/2,buffer2);
for(bytebt:buffer2)
...{
System.out.print((
char)bt);
}

System.out.println();

byte[]buffer=newbyte[50];

lib.GetSystemDirectoryA(buffer,
50);
for(bytebt:buffer)
...{
System.out.print((
char)bt);
}



}



}
分享到:
评论

相关推荐

    Java通过JNA调用系统API

    本文将详细介绍如何使用Java通过JNA调用系统API,以Windows系统为例,重点讲解如何调用`Kernel32.dll`中的`GetLocalTime()`, `GetSystemTime()` 和 `SetLocalTime()` 方法。 1. **Java Native Access (JNA)**: JNA...

    jna platform,Windows api

    学习使用JNA调用Windows API可以帮助Java开发者充分利用Windows系统的功能,同时保持代码的可移植性和简洁性。不过,需要注意的是,由于直接访问底层API,可能会涉及线程安全、资源管理等问题,因此在使用时需谨慎...

    Java高手调用windows本地API、或者是c、c++等语言写的动态链接库源代码

    例如,压缩包中的HelloJNA.java文件很可能是一个示例,展示了如何使用JNA调用Windows API。在这个例子中,可能定义了一个接口,如`WinApi`,并声明了`kernel32.dll`中的一些函数,如`GetLastError()`和`...

    JNA调用DLL完整实例demo

    在“JNA调用DLL完整实例demo”中,我们首先需要创建一个Java接口,这个接口将代表DLL中的函数。例如,如果DLL中有一个名为`recvWork`的函数,我们的Java接口可能会这样定义: ```java public interface ...

    JNA调用.dll文件或.so动态链接库的代码demo

    在标题中提到的“JNA调用.dll文件或.so动态链接库的代码demo”,这是一个实际应用JNA来调用本地动态库的示例。下面我们将深入探讨JNA的工作原理、使用步骤以及如何处理.dll和.so文件。 1. **JNA工作原理**: JNA...

    jna调用C++dll

    本示例将探讨如何使用JNA调用C++编写的动态链接库(DLL)以及如何实现从DLL到Java的回调功能。 首先,我们需要理解JNA的工作原理。JNA通过映射Java接口到C函数来实现调用。这些接口定义了C++ DLL中的函数签名,使得...

    java调用windows api

    Java调用Windows API是将Java程序与Windows操作系统底层功能相结合的一种技术。这允许Java开发者利用Java的跨平台特性,同时可以访问到特定于Windows系统的功能,例如注册表操作、文件系统监控、用户权限管理等。要...

    JNA和JNA_API参考手册CHM

    **JNA3.10 API参考手册** 提供了关于JNA库的详细文档,包括类、接口和方法的说明,以及如何使用JNA调用本地函数的示例。这本书是开发者理解和使用JNA的重要参考资料,尤其对于新手来说,可以通过查阅手册快速了解JNA...

    JNA调用DLL函数.rar

    标题 "JNA调用DLL函数" 涉及的核心知识点是Java Native Access (JNA) 和如何通过JNA调用Windows Dynamic Link Library (DLL) 文件中的函数。在Java编程环境中,JNA提供了一种无需编写JNI(Java Native Interface)...

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

    5. **示例工程`demo-test-dll`**:这个压缩包可能包含了演示如何在Spring Boot中使用JNA调用DLL的示例代码。通常,这将包含Java类、配置文件以及可能的DLL文件。开发者可以通过阅读和运行这些示例来理解如何实现这一...

    java jna 调用dll例子

    在本例中,“java jna 调用dll例子”指的是使用JNA在Java应用程序中调用Windows上的动态链接库(DLL)文件,这里特别提到了大华SDK的Dll,这通常用于处理视频流和视频播放功能。 大华SDK( Dahua Software ...

    JNative&jna-4.0.0.rar

    例如,以下代码展示了如何使用JNA调用Windows API的`GetSystemTime`函数: ```java import com.sun.jna.Library; import com.sun.jna.Native; public interface Kernel32 extends Library { Kernel32 INSTANCE = ...

    jna资料3.0api

    Java Native Access (JNA) 是一个Java库,允许Java代码直接调用本地平台的API,无需编写C代码或使用JNI(Java Native Interface)。通过JNA,你可以方便地操作Windows DLL,例如与SQLite数据库交互。在JNA3.09 API中...

    最简单的JNA调用DLL

    标题中的“最简单的JNA调用DLL”是指Java Native Access(JNA)库在Java程序中调用Windows Dynamic Link Library (DLL) 文件的一种基础方法。JNA是Java平台上的一个开源库,它允许Java代码与本地平台API进行交互,...

    JNA_API.zip_JNA API_jna_jna api_jna 帮助文档_speciesmux

    例如,调用Windows的`GetSystemMetrics`函数,可以这样定义: ```java public interface User32 extends Library { User32 INSTANCE = (User32) Native.load("user32", User32.class); int GetSystemMetrics(int ...

    jinvoke调用Windows API

    通过阅读源码,开发者可以了解到如何使用JNI编写代码来桥接Java和本地代码,以及如何在Java中定义和调用Windows API函数。这对于想要深入研究Java本地接口或者对操作系统级编程感兴趣的开发者来说,是一份宝贵的资源...

    使用jna调用unrar解压rar文件

    总之,使用JNA调用unrar库解压RAR文件是一个涉及到Java本地接口、C库调用和文件操作的综合任务。通过这种方式,我们可以在不离开Java平台的情况下,充分利用底层库的功能,为Java应用提供更丰富的功能。

    JNA调用示例

    总结一下,JNA调用示例展示了如何使用Java Native Access库来调用本地动态链接库(DLL)中的函数。通过定义Java接口并映射本地函数,可以轻松地在Java程序中集成本地功能,而无需直接编写JNI代码。这个示例对于理解...

Global site tag (gtag.js) - Google Analytics