`
沙舟狼客
  • 浏览: 162336 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JNA入门1

阅读更多

1、jna是什么

jna是java native access的简称,用他可以调用C、C++代码,特别是windows中强大的库文件(dll,在linux下是so文件),这样java就可以操控底层的一些东西,比如调用加密机、智能卡之类的

2、jna下载

在maven下直接找jna就有,对应的jar包是jna-3.3.0.jar

3、调用msvcrt.dll(这是windows自带动态链接库 ),不用找,他在system32下

package com.jnastudy.test;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;

public class JNATest {
	//编写一个接口,必须继承Library,他要在加载库文件时用
	public interface CLibrary extends Library {
		//加载库文件,Platform.isWindows()可以判断系统类型
		CLibrary INSTANCE = (CLibrary) Native.loadLibrary(
				(Platform.isWindows() ? "msvcrt" : "c"), CLibrary.class);
		//定义方法,与c语言标准的一致
		void printf(String format, Object... args);
	}
	public static void main(String[] args) {
		//调用
		CLibrary.INSTANCE.printf("%d----%f--",5,5.2f);
		
		final User32 user32 = User32.INSTANCE;
		System.out.println(user32);
		final Kernel32 kernel32 = Kernel32.INSTANCE;
		System.out.println(kernel32.toString());
	}
}

 4、java类型和C类型的映射



 

 

  • 大小: 28 KB
  • 大小: 32.4 KB
分享到:
评论

相关推荐

    JNA示例的C++代码

    1. **C++编程**:这是一种通用的、面向对象的编程语言,广泛用于系统编程和开发本地库。在这个项目中,C++被用来编写DLL(动态链接库),这是一个可供其他程序调用的代码库。 2. **DLL编程**:DLL(Dynamic Link ...

    jna包及示例和VS2010入门

    JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与...

    Java JNA使用参考手册.pdf

    - **入门指南**:[https://github.com/twall/jna/blob/master/www/GettingStarted.md](https://github.com/twall/jna/blob/master/www/GettingStarted.md) #### 二、JNA包介绍 JNA提供了一系列的库文件供开发者...

    jna-platform-4.0.0.jar、4.1.0.jar、4.2.0.jar、4.2.1.jar、4.2.2.jar及JNA使用方法、程序示例

    内部包含6个文件,其中五个是最新JNA jar包,包括jna-platform-4.1.0.jar、jna-platform-4.2.0.jar、jna-platform-4.2.1.jar、jna-platform-4.2.2.jar,一个是JNA介绍文档,包括在线帮助、入门示例、简单程序示例等...

    开源项目JNA-中文翻译版

    JNA入门 - **准备工作**:首先,需要下载并配置`jna.jar` 和 `example.jar` 文件。 - **环境搭建**:确保开发环境已经安装了Java Development Kit (JDK),并且设置了正确的环境变量。 ##### 2. 获取本地时间 - *...

    海康人脸设备上传文档以及说明文档/examples.jar/jna.jar

    综上所述,该压缩包为开发者或系统集成商提供了全面的资源,帮助他们理解和使用海康人脸设备,从设备的基本操作到高级的SDK开发,覆盖了从入门到进阶的全过程。无论是初次接触还是有经验的用户,都能从中获取所需的...

    JNI调用C++动态链接库入门

    ### JNI调用C++动态链接库入门:详细解析与实践指南 #### 一、引言 Java Native Interface(JNI)是Java平台提供的一种强大的机制,它允许Java代码调用本地的C或C++代码,从而利用这些语言在性能、系统访问等方面...

    汇编语言(ASM)从入门到精通

    JBE/JNA(比较无符号数) 76 C或Z=1 低于或等于/不高于 JG/JNLE(比较带符号数) 7F (S异或O)或Z=0 > 大于/不小于或等于 JGE/JNL(比较带符号数) 7D S异或O=0 >= 大于或等于/不小于 JL/JNGE(比较带符号数) 7C S异或O...

    本仓库记录了我的Java学习进阶之路,涵盖了Java基础、JDK源码、JVM中的重要知识,附有代码和博客讲解,旨在提供一个Java在线共享学习平台,帮助更多的Java学习入门者进阶 .zip

    作者目录Java基础Java基础学习(1)——引用Java基础学习(2)——注解Java基础学习(3)——泛型Java基础学习(4)——动态代理《Java多线程核心技术》读书笔记JDK源Java集合框架源码解读(1)——ArrayList、LinkedList和...

    开源项目JavaNativeAccess借鉴.pdf

    在JNA入门示例中,通常会展示如何调用像Windows API中的`GetSystemTime()`这样的函数。这个函数返回系统当前的UTC时间。为了获取本地时间,可以使用`GetLocalTime()`函数,它同样位于`kernel32.dll`库中,但返回的是...

    嵌入式开发学习笔记( java - c/c++ :从入门到入门 )

    3. JNA(Java Native Access):JNA是一个Java库,它提供了一种简易的方法,使得Java程序能够调用动态链接库(DLL或SO)中的函数,而无需编写JNI的本地方法接口。 4. DLL(Dynamic Link Library)和SO(Shared ...

    java调用本地化(dll)实用文档

    JNA快速入门 - **步骤**: 1. **下载JAR包**:首先需要下载`jna.jar`,可以从官方或者其他可信网站获取。 2. **引入依赖**:将下载好的`jna.jar`添加到Java项目的类路径中。 3. **定义接口**:使用JNA提供的`...

    tessdemo:使用JNA的Java中的Tesseract演示

    带有JNA(Tess4J)的Java中的Tesseract演示。 该演示将参加在MacOS,Ubuntu和Windows等多种操作系统上测试 。 Tesseract:一个开源的OCR引擎。 更多详细信息,请参见其。 图像过滤器:查看更多信息。 感谢这些...

    清华妹子的Java仓库(进阶学习路线)

    JNA:演示了JNA的基本用法,使用Java调用C++代码。 博客目录 Java基础 Java基础学习(1)——引用 Java基础学习(2)——注解 Java基础学习(3)——泛型 Java基础学习(4)——动态代理 《Java多线程核心技术》读书笔记 ...

    Java-Objective-C-Bridge:薄桥,允许从Java到Objective-C的双向通信

    执照要求OS X上的Java 11或更高版本JNA入门检出项目并使用mvn clean install (用于调试版本)或mvn clean install -Drelease=true (用于发行版本)进行构建将其作为Maven依赖项包含在您的项目中: < dependency> ...

    Android-基于speex的语音录制

    1. **Speex简介**:Speex是由Xiph.Org基金会开发的一种免费、开放源代码的音频编解码器,它针对人类语音进行了优化,提供多种压缩率以适应不同带宽需求。Speex支持VBR(可变比特率)编码,能在保持音质的同时降低...

    maven-examples:Maven示例

    Maven的例子 :party_popper: 一个用于测试和试验各种Maven插件和配置的游乐场。 外挂程式 :electric_plug: Maven插件 ...Maven原型快速入门 原型以生成示例Maven项目 Maven原型快速入门 允许生成示例Mav

    java-rust-example-使用Java中的Rust-Rust开发

    OSX Linux Windows要求Java 7+ Rust(已经过1.0测试,每晚)该项目包含Rust代码和Java代码使用JNA的Rust接口的Java接口一个脚本将Rust代码构建到库中,并将其放在JNA可以找到它的类路径中Java和Rust入门最好的地方

    常用Jacob包

    Jacob(Java Object-Oriented Binding)...不过,随着技术的发展,一些新的库和框架如Apache POI、JACOB的替代品如JNA(Java Native Access)也逐渐出现,它们提供了更现代的解决方案,可能在某些场景下是更好的选择。

    gst1-java-core:GStreamer 1.x的Java绑定

    gst1-java-core已在Linux(x86和Arm),Windows和macOS上进行了积极测试,但应在任何支持Java,JNA和GStreamer的操作系统上运行。 这些绑定已在台式机,服务器和嵌入式系统的各种商业和开源项目中使用。 用法 请...

Global site tag (gtag.js) - Google Analytics