Java Native Access
Erscheinungsbild
Java Native Access (JNA) ist eine Java-Programmbibliothek für den Zugriff auf plattformspezifische ("native") dynamische Programmbibliotheken (DLL in Windows). Hierbei muss im Unterschied zu JNI kein plattform-spezifischer Code geschrieben werden.
JNA ist in der Funktion mit den .NET Platform Invocation Services (P/Invoke) vergleichbar. Es unterstützt eine automatische Umwandlung zwischen einigen C- und Java-Datentypen. Die erforderliche Java-Mindestversion ist 1.4.
Lizenz
LGPL Version 2.1 oder höher.
Anwendungen
Die folgenden Softwareprojekte verwenden JNA:
Beispiel
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.
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
/** Einfaches Beispiel einer Deklaration und Nutzung einer Dynamischen Programmbibliothek. */
public class HelloWorld {
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary)
Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"),
CLibrary.class);
void printf(String format, Object... args);
}
public static void main(String[] args) {
CLibrary.INSTANCE.printf("Hello, World\n");
for (int i=0;i < args.length;i++) {
CLibrary.INSTANCE.printf("Argument %d: %s\n", i,
args[i]);
}
}
}
Weblinks
- Java Native Access Homepage (Englisch)