WinRAR，是一款功能强大的压缩包管理器，它是档案工具RAR 在 Windows 环境下的图形界面。Winrar可以让你根据需要，将压缩后的文件保存为ZIP或RAR的格式，而压缩时间根据压缩程度的不同，可以自行调整。<em>使用</em>广泛，界面友好，<em>使用</em>方便，在压缩率和速度方面都有很好的表现
Automatic mapping from Java to native functions, with simple mappings for all primitive data types
Runs on most platforms which support Java
Automatic conversion between C and Java strings, with customizable encoding/decoding
Structure and Union arguments/return values, by reference and by value
Function Pointers, (callbacks from native code to Java) as arguments and/or members of a struct
Auto-generated Java proxies for native function pointers
By-reference (pointer-to-type) arguments
Java array and NIO Buffer arguments (primitive types and pointers) as pointer-to-buffer
Nested structures and arrays
Wide (wchar_t-based) strings
Native long support (32- or 64-bit as appropriate)
Supported on 1.4 or later JVMs, including JavaME (earlier VMs may work with stubbed NIO support)
Customizable marshalling/unmarshalling (argument and return value conversions)
Customizable mapping from Java method to native function name, and customizable invocation to simulate C preprocessor function macros
Support for automatic Windows ASCII/UNICODE function mappings
Type-safety for native pointers
VM crash protection (optional)
Optimized direct mapping for high-performance applications.
COM support for early and late binding.
COM/Typelib java code generator.
Community and Support
All questions should be posted to the jna-users Google group. Issues can be submitted here on Github.
When posting to the mailing list, please include the following:
What OS/CPU/architecture you're using (e.g. Windows 7 64-bit)
Reference to your native interface definitions (i.e. C headers), if available
The JNA mapping you're trying to use
VM crash logs, if any
Example native usage, and your attempted Java usage
It's nearly impossible to indicate proper Java usage when there's no native reference to work from.
For commercial support, please contact twalljava [at] java [dot] net.
Using the Library
Mapping between Java and Native
Using Pointers and Arrays
Using Structures and Unions
Using By-Reference Arguments
Customization of Type Mapping
Dynamically Typed Languages (JRuby/Jython)
Direct Method Mapping (Optimization)
Frequently Asked Questions (FAQ)
Primary Documentation (JavaDoc)
The definitive JNA reference is in the JavaDoc.
Contributing to JNA
Setting up a Windows Development Environment
Setting up an Android Development Environment
Setting up a RaspberryPi Development Environment
Setting up a Mac Development Environment
Publishing to Maven Central
You're encouraged to contribute to JNA. Fork the code from https://github.com/java-native-access/jna and submit pull requests.
For more information on setting up a development environment see Contributing to JNA.
If you are interested in paid support, feel free to say so on the jna-users mailing list. Most simple questions will be answered on the list, but more complicated work, new features or target platforms can be negotiated with any of the JNA developers (this is how several of JNA's features came into being). You may even encounter other users with the same need and be able to cost share the new development.
This library is licensed under the LGPL, version 2.1 or later, and (from version 4.0 onward) the Apache Software License, version 2.0. Commercial license arrangements are negotiable.
NOTE: Oracle is not sponsoring this project, even though the package name (com.sun.jna) might imply otherwise.