[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4155":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":30,"discoverSource":31},4155,"jna","java-native-access\u002Fjna","java-native-access","Java Native Access","",null,"Java",8915,1680,369,97,0,1,2,14,3,70.08,"Other",false,"master",true,[],"2026-06-12 04:00:21","![Java Native Access - JNA](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fraw\u002Fmaster\u002Fwww\u002Fimages\u002Fjnalogo.jpg \"Java Native Access - JNA\")\n\n[![Github Actions Build Status](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fworkflows\u002FJava%20CI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Factions?query=workflow%3A%22Java+CI%22)\n[![Travis Build Status](https:\u002F\u002Fapi.travis-ci.com\u002Fjava-native-access\u002Fjna.svg?branch=master)](https:\u002F\u002Ftravis-ci.com\u002Fgithub\u002Fjava-native-access\u002Fjna)\n[![Appveyor Build Status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002Fj6vmpjrw5iktb8iu\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Fdblock\u002Fjna-gsxuq\u002Fbranch\u002Fmaster)\n\nJava Native Access (JNA)\n========================\n\nThe definitive JNA reference (including an overview and usage details) is in the [JavaDoc](http:\u002F\u002Fjava-native-access.github.io\u002Fjna\u002F5.18.1\u002Fjavadoc\u002F).  Please read the [overview](http:\u002F\u002Fjava-native-access.github.io\u002Fjna\u002F5.18.1\u002Fjavadoc\u002Foverview-summary.html#overview_description).  Questions, comments, or exploratory conversations should begin on the [mailing list](http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Fjna-users), although you may find it easier to find answers to already-solved problems on [StackOverflow](http:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Ftagged\u002Fjna).\n\nJNA provides Java programs easy access to native shared libraries without writing anything but Java code - no JNI or native code is required. This functionality is comparable to Windows' Platform\u002FInvoke and Python's ctypes.\n\nJNA allows you to call directly into native functions using natural Java method invocation. The Java call looks just like the call does in native code. Most calls require no special handling or configuration; no boilerplate or generated code is required.\n\nJNA uses a small JNI library stub to dynamically invoke native code. The developer uses a Java interface to describe functions and structures in the target native library. This makes it quite easy to take advantage of native platform features without incurring the high overhead of configuring and building JNI code for multiple platforms.  Read this [more in-depth description](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FFunctionalDescription.md).\n\nWhile significant attention has been paid to performance, correctness and ease of use take priority.\n\nIn addition, JNA includes a platform library with many native functions already mapped as well as a set of utility interfaces that simplify native access.\n\nProjects Using JNA\n==================\nJNA is a mature library with dozens of contributors and hundreds of commercial and non-commercial projects that use it.  If you're using JNA, feel free to [tell us about it](http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Fjna-users).  Include some details about your company, project name, purpose and size and tell us how you use the library.\n\n- [Apache Cassandra](http:\u002F\u002Fcassandra.apache.org): Large-scale NoSQL data store.\n- [Rococoa](https:\u002F\u002Fgithub.com\u002Fiterate-ch\u002Frococoa): Java bindings to the Mac OS X Cocoa framework, by Duncan McGregor.\n- [jna-posix](https:\u002F\u002Fgithub.com\u002Fjenkinsci\u002Fjna-posix): Common POSIX Functions for Java.\n- [JNAerator](https:\u002F\u002Fgithub.com\u002Fnativelibs4java\u002FJNAerator): Pronounced \"generator\", auto-generates JNA mappings from C headers, by Olivier Chafik.\n- [Freedom for Media in Java](https:\u002F\u002Fgithub.com\u002Fjitsi\u002Ffmj) by Ken Larson\u002FDieter Krachtus.\n- [GStreamer-Java](https:\u002F\u002Fgithub.com\u002Fgstreamer-java\u002F): Java bindings and utilities for [GStreamer 1.x](https:\u002F\u002Fgstreamer.freedesktop.org\u002F).\n- [VLCJ](https:\u002F\u002Fgithub.com\u002Fcaprica\u002Fvlcj): Java bindings for libVLC.\n- [SVNKit](http:\u002F\u002Fsvnkit.com): Pure Java Subversion client library.\n- [OmegaT Computer-Aided Translation](https:\u002F\u002Fomegat.org\u002F).\n- [IntelliJ IDEA](https:\u002F\u002Fwww.jetbrains.com\u002Fidea) by JetBrains.\n- [Jetbrains Toolbox](https:\u002F\u002Fwww.jetbrains.com\u002Ftoolbox-app\u002F) by JetBrains.\n- [Apache NetBeans IDE](https:\u002F\u002Fnetbeans.apache.org\u002F) by Apache Software Foundation.\n- [FileBot Media Renamer](http:\u002F\u002Fwww.filebot.net) by Reinhard Pointner.\n- [USB for Java](https:\u002F\u002Flaunchpad.net\u002Flibusb4j) by Mario Boikov.\n- [Waffle](https:\u002F\u002Fgithub.com\u002Fdblock\u002Fwaffle): Enables SSO on Windows in Java applications, by Daniel Doubrovkine.\n- [leveldb-jna](https:\u002F\u002Fgithub.com\u002Fprotonail\u002Fleveldb-jna): Cross-platform JNA based adapter for [LevelDB](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fleveldb).\n- [bolt-jna](https:\u002F\u002Fgithub.com\u002Fprotonail\u002Fbolt-jna): Cross-platform JNA based adapter for [Bolt](https:\u002F\u002Fgithub.com\u002Fboltdb\u002Fbolt). It is to show how to use JNA for binding to Go library.\n- [JVM OpenVR Bindings](https:\u002F\u002Fgithub.com\u002Fkotlin-graphics\u002Fopenvr).\n- [Apache Ignite](https:\u002F\u002Fignite.apache.org\u002F): Direct IO plugin\n- [Domino JNA](https:\u002F\u002Fgithub.com\u002Fklehmann\u002Fdomino-jna): Cross-platform access to HCL Notes\u002FDomino C API methods from Java\n- [OSHI](https:\u002F\u002Fgithub.com\u002Foshi\u002Foshi): Cross-platform Operating System and Hardware Information library for Java\n- [jAlbum](https:\u002F\u002Fjalbum.net): Desktop based web gallery software for any web site.\n- [jacknji11](https:\u002F\u002Fgithub.com\u002Fjoelhockey\u002Fjacknji11): Provides a Java PKCS#11 interface.\n- [JNAJack](https:\u002F\u002Fgithub.com\u002Fjaudiolibs\u002Fjnajack): Java bindings for [JACK Audio Connection Kit](https:\u002F\u002Fjackaudio.org\u002F).\n- [Elasticsearch](https:\u002F\u002Fwww.elastic.co\u002Felasticsearch\u002F): Large-scale distributed search and analytics engine.\n- [Aki](https:\u002F\u002Fgithub.com\u002FletmeNo1\u002FAki): Automated Testing on desktop\n\n*Interesting Investigations\u002FExperiments*\n\n- [Drive Lego Mindstorm NXT](http:\u002F\u002Fepirsch.blogspot.com\u002F2008\u002F02\u002Fjna-love-nxt.html) by Emmanuel Pirsch.\n- [Detect User Inactivity](http:\u002F\u002Fochafik.free.fr\u002Fblog\u002F?p=98) by Olivier Chafik.\n\nThere are also a number of examples and projects within the `contrib` directory of the JNA project itself.\n\nSupported Platforms\n===================\nJNA will build on most linux-like platforms with a reasonable set of GNU tools and a JDK.  See the native [Makefile](https:\u002F\u002Fraw.githubusercontent.com\u002Fjava-native-access\u002Fjna\u002Fmaster\u002Fnative\u002FMakefile) for native configurations that have been built and tested.  If your platform is supported by [libffi](http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLibffi), then chances are you can build JNA for it.\n\nPre-built platform support may be found [here](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Ftree\u002Fmaster\u002Flib\u002Fnative).\n\nDownload\n========\n\nVersion 5.18.1\n\nJNA\n---\n\n[![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fnet.java.dev.jna\u002Fjna.svg?label=Maven%20Central)](https:\u002F\u002Fsearch.maven.org\u002Fartifact\u002Fnet.java.dev.jna\u002Fjna\u002F5.18.1\u002Fjar)&nbsp;[jna-5.18.1.jar](https:\u002F\u002Frepo1.maven.org\u002Fmaven2\u002Fnet\u002Fjava\u002Fdev\u002Fjna\u002Fjna\u002F5.18.1\u002Fjna-5.18.1.jar)&nbsp;[jna-jpms-5.18.1.jar](https:\u002F\u002Frepo1.maven.org\u002Fmaven2\u002Fnet\u002Fjava\u002Fdev\u002Fjna\u002Fjna-jpms\u002F5.18.1\u002Fjna-jpms-5.18.1.jar)\n\nThis is the core artifact of JNA and contains only the binding library and the\ncore helper classes.\n\nJNA Platform\n------------\n\n[![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fnet.java.dev.jna\u002Fjna-platform.svg?label=Maven%20Central)](https:\u002F\u002Fsearch.maven.org\u002Fartifact\u002Fnet.java.dev.jna\u002Fjna-platform\u002F5.18.1\u002Fjar)&nbsp;[jna-platform-5.18.1.jar](https:\u002F\u002Frepo1.maven.org\u002Fmaven2\u002Fnet\u002Fjava\u002Fdev\u002Fjna\u002Fjna-platform\u002F5.18.1\u002Fjna-platform-5.18.1.jar)&nbsp;[jna-platform-jpms-5.18.1.jar](https:\u002F\u002Frepo1.maven.org\u002Fmaven2\u002Fnet\u002Fjava\u002Fdev\u002Fjna\u002Fjna-platform-jpms\u002F5.18.1\u002Fjna-platform-jpms-5.18.1.jar)\n\nThis artifact holds cross-platform mappings and mappings for a number of commonly used platform\nfunctions, including a large number of Win32 mappings as well as a set of utility classes\nthat simplify native access. The code is tested and the utility interfaces ensure that\nnative memory management is taken care of correctly.\n\nSee [PlatformLibrary.md](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FPlatformLibrary.md) for details.\n\nFeatures\n========\n\n* Automatic mapping from Java to native functions, with simple mappings for all primitive data types\n* Runs on most platforms which support Java\n* Automatic conversion between C and Java strings, with customizable encoding\u002Fdecoding\n* Structure and Union arguments\u002Freturn values, by reference and by value\n* Function Pointers, (callbacks from native code to Java) as arguments and\u002For members of a struct\n* Auto-generated Java proxies for native function pointers\n* By-reference (pointer-to-type) arguments\n* Java array and NIO Buffer arguments (primitive types and pointers) as pointer-to-buffer\n* Nested structures and arrays\n* Wide (wchar_t-based) strings\n* Native long support (32- or 64-bit as appropriate)\n* [Demo applications\u002Fexamples](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Ftree\u002Fmaster\u002Fcontrib)\n* Supported on 1.4 or later JVMs, including JavaME (earlier VMs may work with stubbed NIO support)\n* Customizable marshalling\u002Funmarshalling (argument and return value conversions)\n* Customizable mapping from Java method to native function name, and customizable invocation to simulate C preprocessor function macros\n* Support for automatic Windows ASCII\u002FUNICODE function mappings\n* Varargs support\n* Type-safety for native pointers\n* VM crash protection (optional)\n* Optimized direct mapping for high-performance applications.\n* COM support for early and late binding.\n* COM\u002FTypelib java code generator.\n\nCommunity and Support\n=====================\n\nAll questions should be posted to the [jna-users Google group](http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Fjna-users). Issues can be submitted [here on Github](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fissues).\n\nWhen posting to the mailing list, please include the following:\n\n* What OS\u002FCPU\u002Farchitecture you're using (e.g. Windows 7 64-bit)\n* Reference to your native interface definitions (i.e. C headers), if available\n* The JNA mapping you're trying to use\n* VM crash logs, if any\n* Example native usage, and your attempted Java usage\n\nIt's nearly impossible to indicate proper Java usage when there's no native\nreference to work from.\n\nFor commercial support, please contact twalljava [at] java [dot] net.\n\nUsing the Library\n=================\n\n* [Getting Started](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FGettingStarted.md)\n* [Functional Description](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FFunctionalDescription.md).\n* [Mapping between Java and Native](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FMappings.md)\n* [Using Pointers and Arrays](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FPointersAndArrays.md)\n* [Using Structures and Unions](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FStructuresAndUnions.md)\n* [Using By-Reference Arguments](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FByRefArguments.md)\n* [Customization of Type Mapping](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FCustomMappings.md)\n* [Callbacks\u002FFunction Pointers\u002FClosures](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FCallbacksAndClosures.md)\n* [Dynamically Typed Languages (JRuby\u002FJython)](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FDynamicallyTypedLanguages.md)\n* [Platform Library](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FPlatformLibrary.md)\n* [Direct Method Mapping](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FDirectMapping.md) (Optimization)\n* [Frequently Asked Questions (FAQ)](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FFrequentlyAskedQuestions.md)\n* [Avoiding Crashes](http:\u002F\u002Fjava-native-access.github.io\u002Fjna\u002F5.18.1\u002Fjavadoc\u002Foverview-summary.html#crash-protection)\n\nPrimary Documentation (JavaDoc)\n===============================\n\nThe definitive JNA reference is in the [JavaDoc](http:\u002F\u002Fjava-native-access.github.io\u002Fjna\u002F5.18.1\u002Fjavadoc\u002F).\n\nDevelopers\n==========\n\n* [Contributing to JNA](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FContributing.md)\n* [Setting up a Windows Development Environment](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FWindowsDevelopmentEnvironment.md)\n* [Setting up an Android Development Environment](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FAndroidDevelopmentEnvironment.md)\n* [Setting up a RaspberryPi Development Environment](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FRaspberryPiDevelopmentEnvironment.md)\n* [Setting up a Mac Development Environment](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FMacDevelopmentEnvironment.md)\n* [Releasing JNA](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FReleasingJNA.md)\n* [Publishing to Maven Central](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FPublishingToMavenCentral.md)\n\nContributing\n============\n\nYou're encouraged to contribute to JNA. Fork the code from [https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna) and submit pull requests.\n\nFor more information on setting up a development environment see [Contributing to JNA](https:\u002F\u002Fgithub.com\u002Fjava-native-access\u002Fjna\u002Fblob\u002Fmaster\u002Fwww\u002FContributing.md).\n\nIf you are interested in paid support, feel free to say so on the [jna-users mailing list](http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Fjna-users). 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.\n\nLicense\n=======\n\nThis library is licensed under the LGPL, version 2.1 or later, or (from version 4.0 onward) the Apache License, version 2.0. Commercial support may be available, please e-mail twall[at]users[dot]sf[dot]net. See [LICENSE](LICENSE) for more information.\n\n*NOTE: Oracle is not sponsoring this project, even though the package name (com.sun.jna) might imply otherwise.*\n\n\n","Java Native Access (JNA) 是一个使 Java 程序能够轻松访问本地共享库的工具，无需编写任何JNI或本地代码。其核心功能包括通过自然的Java方法调用来直接调用本地函数，并使用Java接口描述目标本地库中的函数和结构体，极大地简化了跨平台开发流程。JNA特别适用于需要利用底层操作系统特性但又希望避免复杂JNI配置与构建过程的应用场景中，如系统管理、硬件控制等。此外，它还提供了一个包含许多已映射原生函数的平台库及一系列简化本地访问的实用接口，进一步增强了其实用性和易用性。","2026-06-11 02:58:45","top_language"]