<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Java_Native_Access</id>
	<title>Java Native Access - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Java_Native_Access"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_Native_Access&amp;action=history"/>
	<updated>2026-05-14T22:37:28Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_Native_Access&amp;diff=1367703&amp;oldid=prev</id>
		<title>imported&gt;Wastl23: Aktuelle Version aktualisiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_Native_Access&amp;diff=1367703&amp;oldid=prev"/>
		<updated>2025-07-29T11:24:41Z</updated>

		<summary type="html">&lt;p&gt;Aktuelle Version aktualisiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
|Logo                  = &lt;br /&gt;
|Screenshot            = &lt;br /&gt;
|Beschreibung          = Java-Bibliothek für den Zugriff auf native Bibliotheken&lt;br /&gt;
|Maintainer            = Todd Fast, Timothy Wall, Liang Chen&lt;br /&gt;
|Hersteller            = &lt;br /&gt;
|Erscheinungsjahr      = &lt;br /&gt;
|AktuelleVersion       = 5.17.0&lt;br /&gt;
|AktuelleVersionFreigabeDatum = 16. März 2025&amp;lt;!-- https://github.com/java-native-access/jna/releases/tag/5.17.0 --&amp;gt;&lt;br /&gt;
|AktuelleVorabVersion  = &lt;br /&gt;
|AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
|Betriebssystem        = Windows, OS X, Android, AIX, FreeBSD, Linux, OpenBSD, Solaris, Windows Mobile&lt;br /&gt;
|Programmiersprache    = [[Java (Programmiersprache)|Java]]&lt;br /&gt;
|Kategorie             = [[Software-Bibliothek]]&lt;br /&gt;
|Lizenz                = [[LGPL]] Version 2.1 oder höher und (ab V4.0) die [[Apache Software License]] V2.0&lt;br /&gt;
|Deutsch               = &lt;br /&gt;
|Website               = [https://github.com/java-native-access/jna github.com/java-native-access/jna]&lt;br /&gt;
|Dateien               = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Java Native Access&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;JNA&amp;#039;&amp;#039;&amp;#039;) ist eine [[Java (Programmiersprache)|Java]]-[[Programmbibliothek]] für den Zugriff auf [[Plattform (Computer)|plattformspezifische]] („native“) [[Programmbibliothek#Dynamische Bibliotheken|dynamische Programmbibliotheken]] ([[Dynamic Link Library|DLLs]] in Windows oder „shared libraries“ auf anderen Systemen). Hierbei braucht im Unterschied zu [[Java Native Interface]] (JNI) kein plattformspezifischer Code geschrieben zu werden.&lt;br /&gt;
&lt;br /&gt;
JNA ist in der Funktion mit den [[Platform Invocation Services]] (P/Invoke) des [[.Net-Framework]]s unter Windows vergleichbar. Es unterstützt eine automatische Umwandlung zwischen einigen C- und Java-[[Datentyp]]en. Die minimal erforderliche Java-Version ist 1.4.&lt;br /&gt;
&lt;br /&gt;
== Lizenz ==&lt;br /&gt;
[[GNU Lesser General Public License|LGPL]] Version 2.1 oder höher und (ab V4.0) die [[Apache Software License]] V2.0.&amp;lt;ref&amp;gt;[https://github.com/twall/jna#readme github.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mapping der Datentypen ==&lt;br /&gt;
Die folgende Tabelle zeigt, wie das Mapping zwischen Java und dem nativen Code mit JNA erfolgt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/twall/jna/blob/master/www/Mappings.md |titel=Default Type Mappings |hrsg=jna.dev.java.net |abruf=2011-08-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Nativer Typ&lt;br /&gt;
!Größe&lt;br /&gt;
!Java Typ&lt;br /&gt;
!Standard Windows Type&lt;br /&gt;
|-&lt;br /&gt;
|char&lt;br /&gt;
|8-bit integer&lt;br /&gt;
|byte&lt;br /&gt;
|BYTE, TCHAR&lt;br /&gt;
|-&lt;br /&gt;
|short&lt;br /&gt;
|16-bit&lt;br /&gt;
|short&lt;br /&gt;
|short WORD&lt;br /&gt;
|-&lt;br /&gt;
|wchar_t&lt;br /&gt;
|16/32-bit character&lt;br /&gt;
|char&lt;br /&gt;
|WCHAR, TCHAR&lt;br /&gt;
|-&lt;br /&gt;
|int&lt;br /&gt;
|32-bit integer&lt;br /&gt;
|int&lt;br /&gt;
|DWORD&lt;br /&gt;
|-&lt;br /&gt;
|int&lt;br /&gt;
|boolean value&lt;br /&gt;
|boolean&lt;br /&gt;
|BOOL&lt;br /&gt;
|-&lt;br /&gt;
|long&lt;br /&gt;
|32/64-bit integer&lt;br /&gt;
|NativeLong&lt;br /&gt;
|LONG&lt;br /&gt;
|-&lt;br /&gt;
|long long, __int64&lt;br /&gt;
|64-bit integer&lt;br /&gt;
|long&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|float&lt;br /&gt;
|32-bit FP&lt;br /&gt;
|float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|double&lt;br /&gt;
|64-bit FP&lt;br /&gt;
|double&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|char*&lt;br /&gt;
|C string&lt;br /&gt;
|String&lt;br /&gt;
|LPCTSTR&lt;br /&gt;
|-&lt;br /&gt;
|void*&lt;br /&gt;
|pointer&lt;br /&gt;
|Pointer&lt;br /&gt;
|LPVOID, HANDLE, LPXXX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
Die folgenden Softwareprojekte verwenden JNA:&lt;br /&gt;
* [[JRuby]]&lt;br /&gt;
* [[Java Media Framework#FMJ]]&lt;br /&gt;
* [[IntelliJ IDEA]]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Das folgende Beispiel lädt die [[Standard C Library]], um die [[printf]]-Funktion aufzurufen. Dieses Beispiel funktioniert auf [[Microsoft Windows]] und [[Linux]] / [[Unix]] / [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import com.sun.jna.Library;&lt;br /&gt;
import com.sun.jna.Native;&lt;br /&gt;
import com.sun.jna.Platform;&lt;br /&gt;
&lt;br /&gt;
/** Einfaches Beispiel einer Deklaration und Nutzung einer Dynamischen Programmbibliothek bzw. &amp;quot;shared library&amp;quot;. */&lt;br /&gt;
public class HelloWorld {&lt;br /&gt;
  public interface CLibrary extends Library {&lt;br /&gt;
    CLibrary INSTANCE = (CLibrary)Native.loadLibrary((Platform.isWindows() ? &amp;quot;msvcrt&amp;quot; : &amp;quot;c&amp;quot;),&lt;br /&gt;
        CLibrary.class);&lt;br /&gt;
&lt;br /&gt;
    void printf(String format, Object... args);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    CLibrary.INSTANCE.printf(&amp;quot;Hello, World\n&amp;quot;);&lt;br /&gt;
    for (int i=0;i &amp;lt; args.length;i++) {&lt;br /&gt;
      CLibrary.INSTANCE.printf(&amp;quot;Argument %d: %s\n&amp;quot;, i, args[i]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://github.com/java-native-access/jna#readme Java Native Access Homepage] (englisch)&lt;br /&gt;
* [https://github.com/java-native-access/jna#download Java Native Access – Download page] (englisch)&lt;br /&gt;
* [http://groups.google.com/group/jna-users/about Java Native Access – User Mailing List] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java-Bibliothek]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Wastl23</name></author>
	</entry>
</feed>