Java bietet die Möglichkeit, externe Pakete zu importieren und deren Funktionalität zu nutzen. Prominentestes Beispiel hierfür ist die in Java mitgelieferte Klassenbibliothek.
Angenommen, man möchte bei der Entwicklung die bisher auf der Konsole getätigen Debug-Ausgaben in Zukunft etwas komfortabler verwalten. Fehlermeldungen sollen hinsichtlich ihrer Schwere klassifiziert und je nach Fortschritt im Entwicklungsprozess unterschiedlich angezeigt werden. Eine solche Funktionalität wird von fremdentwickelten Logging-Bibliotheken wie zum Beispiel log4J 2 übernommen. Log4J 2 ist also ein Paket, welches von der eigenen Software zuerst importiert werden muss, bevor dessen Funktionalität genutzt werden kann. Um die fremde Bibliothek importieren zu können, muss sie erworben bzw. aus dem Internet heruntergeladen werden.
Anschließend muss die Bibliothek dem sogenannten "Classpath" (auch "Build Path" genannt) hinzugefügt werden. Das ist der Ort, in dem der Java-Compiler nach fremden Quellen sucht.
In der Entwicklungsumgebung Eclipse kann man Bibliotheken hinzufügen, indem man die folgenden Schritte durchführt:
Nun, da die Bibliotheken dem Compiler bekannt sind, können sie im Quellcode unmittelbar verwendet werden. Am Beispiel der
Bibliothek Log4J 2 kann ein Objekt der Klasse "Logger" im Paket org.apache.logging.log4j wie folgt instanziiert werden:
org.apache.logging.log4j.Logger l = org.apache.logging.log4j.LogManager.getRootLogger();
Um nicht in jeder Anweisung den vollen Namen der benötigten Klasse ausschreiben zu müssen, gibt es in der
Programmiersprache Java das Schlüsselwort import.

Um den Logger nutzen zu können, muss eine Konfiguration in der Datei log4j2.xml erfolgen, die im gleichen Ordner wie die Klassen liegen. Darin werden die Konfigurationsmerkmale von log4j 2 gesetzt. Ohne diese Datei können nur Fehler, aber keine Informationen ausgegeben werden.
| Merke |
Im Zusammenhang mit der Verwendung des Zeichens "*" lassen sich mit der import-Anweisung auch ganze Pakete importieren. Das
macht insbesondere dann Sinn, wenn viele Klassen eines bestimmten Pakets eingesetzt werden. Die Anweisungimport org.apache.logging.log4j.*;würde also ausreichen, um dem Compiler beide oben angegebenen Klassen der fremden Bibliothek bekannt zu machen. |
Eine der wichtigsten Bibliotheken in Java ist die Standard-Klassenbibliothek. Sie unterstützt den Programmierer mit nützlichen Funktionen für die unterschiedlichsten Problemstellungen. Sie ist bereits in der Java-Laufzeitumgebung integriert und muss daher im Gegensatz zu extern entwickelten Bibliotheken nicht manuell zum Classpath hinzugefügt werden. Trotzdem müssen die vielen darin enthaltenen Klassen mit dem vollständigen Namen angesprochen oder per import-Anweisung dem Compiler bekannt gemacht werden.
Die Java-Klassenbibliothek ist hierarchisch in Pakete gegliedert, die ganz unterschiedlichen Einsatzzwecken zugeordnet sind. Sie decken Funktionen im Bereich der Programmierung grafischer Benutzerschnittstellen (GUI-Programmierung), Netzwerkprogrammierung, Daeisysteme und Datenströme sowie häufig benötigter Datenstrukturen ab.
Überblick über die Pakete der Java-Klassenbibliothek:
java.applet |
Programmierung HTML-basierter, im Browser ausführbarer Oberflächen |
java.awt |
GUI-Programmierung mit AWT (Abstract Window Toolkit) |
java.beans |
Datencontainer zur Übertragung, Datenobjekte für Persistenzframeworks |
java.io |
Ein-/Ausgabe-Operationen, Datenströme |
java.lang |
Fundamentale Klassen der Programmiersprache (z.B. String). Sie müssen nicht importiert werden. |
java.net |
Netzwerkfunktionen |
java.nio |
Zugriff auf (virtuelle) Dateisysteme, z.B. über FTP. |
java.rmi |
Entfernter (auf anderer VM) Objektzugriff, Zugriff wie lokaler Zugriff, aber Ausnahmen abfangen |
java.security |
Zertifikate, Kryptographie |
java.sql |
Datenbankfunktionen |
java.util |
Klassen für Datenstrukturen |
java.swing |
GUI-Programmierung mit Swing |
Im Gegensatz zu selbst entwickelten Paketen sind die Funktionen einer externen Bibliothek zunächst unbekannt. Zu diesem Zweck bietet in der Regel jede Bibliothek eine API-Dokumentation an (API = Application Programming Interface). Eine solche Dokumentation erfüllt den Zweck einer Referenz oder eines Nachschlagewerkes, das kurz und knapp Aufschluss gibt über die Paketstruktur, welche Klassen in den einzelnen Paketen verfügbar sind und welche Methoden diese anbieten. Da die Namen der Elemente nicht immer selbsterklärend sind, existiert zu jedem dieser drei Elemente üblicherweise eine kurze Beschreibung über Zweck und Anwendung. Manche Bibliotheken, darunter auch die Java-Klassenbibliothek, stellen darüber hinaus sogar Anleitungen (engl. "Tutorials" oder "Programmer's Guides") mit ausführlichen Bedienhinweisen und Beispielen bereit.
Oben auf der linken Seite werden alle Pakete angezeigt. Darunter ist die Klassen-Übersicht mit allen Klassen und Interfaces der Bibliothek sichtbar. Wählt man oben ein bstimmtes Paket aus, so werden nur die Klassen und Interfaces des ausgewählten Pakets angezeigt. Während der linke Bereich der Navigation dient, ist der rechte Bereich für die Anzeige der Inhalt bstimmt. Wählt man eine Klasse auf der linken Seite aus, so werden im Inhaltsbereich deren öffentlich sichtbaren Attribute und Methoden aufgeführt und erklärt.
Die Klasse "Scanner" aus dem Paket java.util ermöglicht einem
Programm das Einlesen von Benutzereingaben auf der Konsole. Die Dokumentation zur Klasse zeigt ein Code-Beispiel, wie das
nützliche Werkzeug eingesetzt werden kann. Das Beispiel besteht aus nur zwei Anweisungen: der Deklaration und
Instanziierung eines Scanner-Objekts und dem Auslesen einer Benutzereingabe.

Im Beispiel wird die Methode nextInt() verwendet, die Dokumentation erklärt
die Methode: "Scannt das nächste Token (= kleinstes Element aus einer Menge von Eingaben) einer Eingabe als Datentyp int".
