Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Objektorientierte Beziehungsfragen
7 Ausnahmen müssen sein
8 Äußere.innere Klassen
9 Besondere Typen der Java SE
10 Generics<T>
11 Lambda-Ausdrücke und funktionale Programmierung
12 Architektur, Design und angewandte Objektorientierung
13 Die Klassenbibliothek
14 Einführung in die nebenläufige Programmierung
15 Einführung in Datenstrukturen und Algorithmen
16 Einführung in grafische Oberflächen
17 Einführung in Dateien und Datenströme
18 Einführung ins Datenbankmanagement mit JDBC
19 Einführung in <XML>
20 Testen mit JUnit
21 Bits und Bytes und Mathematisches
22 Die Werkzeuge des JDK
A Java SE Paketübersicht
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 20,0 MB
- Übungsaufgaben, ca. 1,8 MB
- Musterlösungen, ca. 0,8 MB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenbloom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
Rheinwerk Computing
1306 Seiten, gebunden, 11. Auflage
49,90 Euro, ISBN 978-3-8362-2873-2
Pfeil 1 Java ist auch eine Sprache
Pfeil 1.1 Historischer Hintergrund
Pfeil 1.2 Warum Java gut ist – die zentralen Eigenschaften
Pfeil 1.2.1 Bytecode
Pfeil 1.2.2 Ausführung des Bytecodes durch eine virtuelle Maschine
Pfeil 1.2.3 Plattformunabhängigkeit
Pfeil 1.2.4 Java als Sprache, Laufzeitumgebung und Standardbibliothek
Pfeil 1.2.5 Objektorientierung in Java
Pfeil 1.2.6 Java ist verbreitet und bekannt
Pfeil 1.2.7 Java ist schnell – Optimierung und Just-in-time-Compilation
Pfeil 1.2.8 Das Java-Security-Modell
Pfeil 1.2.9 Zeiger und Referenzen
Pfeil 1.2.10 Bring den Müll raus, Garbage-Collector!
Pfeil 1.2.11 Ausnahmebehandlung
Pfeil 1.2.12 Angebot an Bibliotheken und Werkzeugen
Pfeil 1.2.13 Einfache Syntax der Programmiersprache Java
Pfeil 1.2.14 Java ist Open Source
Pfeil 1.2.15 Wofür sich Java weniger eignet
Pfeil 1.2.16 Java im Vergleich zu anderen Sprachen *
Pfeil 1.2.17 Java und das Web, Applets und JavaFX
Pfeil 1.2.18 Features, Enhancements (Erweiterungen) und ein JSR
Pfeil 1.2.19 Die Entwicklung von Java und seine Zukunftsaussichten
Pfeil 1.3 Java-Plattformen: Java SE, Java EE, Java ME und Java Card
Pfeil 1.3.1 Die Java SE-Plattform
Pfeil 1.3.2 Java für die Kleinen
Pfeil 1.3.3 Java für die ganz, ganz Kleinen
Pfeil 1.3.4 Java für die Großen
Pfeil 1.3.5 Echtzeit-Java (Real-time Java)
Pfeil 1.4 Die Installation der Java Platform Standard Edition (Java SE)
Pfeil 1.4.1 Die Java SE von Oracle
Pfeil 1.4.2 Download des JDK
Pfeil 1.4.3 Java SE unter Windows installieren
Pfeil 1.4.4 JDK/JRE deinstallieren
Pfeil 1.4.5 JDK unter Linux installieren
Pfeil 1.4.6 JDK unter Max OS X installieren
Pfeil 1.5 Das erste Programm compilieren und testen
Pfeil 1.5.1 Compilertest
Pfeil 1.5.2 Ein Quadratzahlen-Programm
Pfeil 1.5.3 Der Compilerlauf
Pfeil 1.5.4 Die Laufzeitumgebung
Pfeil 1.5.5 Häufige Compiler- und Interpreter-Probleme
Pfeil 1.6 Entwicklungsumgebungen im Allgemeinen
Pfeil 1.6.1 Die Entwicklungsumgebung Eclipse
Pfeil 1.6.2 NetBeans von Oracle
Pfeil 1.6.3 IntelliJ IDEA
Pfeil 1.6.4 Ein Wort zu Microsoft, Java und zu J++, J#
Pfeil 1.7 Eclipse im Speziellen
Pfeil 1.7.1 Eclipse entpacken und starten
Pfeil 1.7.2 Das erste Projekt anlegen
Pfeil 1.7.3 Verzeichnisstruktur für Java-Projekte *
Pfeil 1.7.4 Eine Klasse hinzufügen
Pfeil 1.7.5 Übersetzen und ausführen
Pfeil 1.7.6 Projekt einfügen, Workspace für die Programme wechseln
Pfeil 1.7.7 Plugins für Eclipse
Pfeil 1.8 NetBeans im Speziellen
Pfeil 1.8.1 NetBeans-Bundles
Pfeil 1.8.2 NetBeans installieren
Pfeil 1.8.3 NetBeans starten
Pfeil 1.8.4 Ein neues NetBeans-Projekt anlegen
Pfeil 1.8.5 Ein Java-Programm starten
Pfeil 1.9 Zum Weiterlesen
 
Zum Seitenanfang

1.5Das erste Programm compilieren und testen Zur vorigen ÜberschriftZur nächsten Überschrift

Nachdem wir die grundlegenden Konzepte von Java besprochen haben, wollen wir ganz dem Zitat von Dennis M. Ritchie folgen, der sagt:

»Eine neue Programmiersprache lernt man nur, wenn man in ihr Programme schreibt.«

In diesem Abschnitt nutzen wir den Java-Compiler und Interpreter von der Kommandozeile. Wer gleich eine ordentliche Entwicklungsumgebung wünscht, der kann problemlos diesen Teil überspringen und bei den IDEs fortfahren. Die Beispiele im Buch basieren auf Windows.

Der Quellcode eines Java-Programms lässt sich so allein nicht ausführen. Ein spezielles Programm, der Compiler (auch Übersetzer genannt), transformiert das geschriebene Programm in eine andere Repräsentation. Im Fall von Java erzeugt der Compiler die DNA jedes Programms, den Bytecode.

 
Zum Seitenanfang

1.5.1Compilertest Zur vorigen ÜberschriftZur nächsten Überschrift

Damit sich Programme übersetzen und ausführen lassen, müssen wir die Programme javac und java aus dem bin-Verzeichnis der JDK-Installation aufrufen. Da nach der Installation Oracle den bin-Ordner nicht automatisch im Suchpfad aufnimmt, gibt es auf der Kommandozeile beim Aufruf von javac erst einmal einen Fehler. Eine Lösung ist, statt einfach nur javac den kompletten Pfadnamen anzugeben.

[zB]Beispiel

Teste die Installation, und gib die Version des Java-Compilers aus:

$ "C:\Program Files\Java\jdk1.8.0\bin\javac" -version
javac 1.8.0

Den Suchpfad für Windows setzen

Da es unpraktisch ist, bei jedem Aufruf immer den kompletten Pfad zur JDK-Installation anzugeben, lässt sich der Suchpfad erweitern, in dem die Shell nach ausführbaren Programmen sucht. Um die Pfade dauerhaft zu setzen, müssen wir die Umgebungsvariable PATH modifizieren. Für eine Sitzung reicht es, den bin-Pfad des JDK hinzuzunehmen. Wir setzen dazu in der Kommandozeile von Windows den Pfad jdk1.8.0\bin an den Anfang der Suchliste, damit im Fall von Altinstallationen immer das neue JDK verwendet wird:

set PATH=C:\Program Files\Java\jdk1.8.0\bin;%PATH%

Die Anweisung modifiziert die Pfad-Variable und legt einen zusätzlichen Verweis auf das bin-Verzeichnis von Java an.

Damit die Pfadangabe auch nach einem Neustart des Rechners noch verfügbar ist, müssen wir abhängig vom System unterschiedliche Einstellungen vornehmen:

  • Ab Windows Vista aktiviere im Startmenü Systemsteuerung, und klicke dann auf System und Sicherheit. Aktiviere System und dann Erweiterte Systemeigenschaften. Es öffnet sich ein neuer Dialog mit einer Schaltfläche Umgebungsvariablen… unter dem Reiter Erweitert. Nach dem Klick auf die Schaltfläche öffnet sich ein weiterer Dialog Umgebungsvariablen. Im unteren Teil, Systemvariablen, suche nach Path. Mit Bearbeiten… verändere den Eintrag, und füge dem Pfad hinter einem Semikolon das JDK-bin-Verzeichnis (C:\Program Files\Java\jdk1.8.0\bin) hinzu. Bestätige die Änderung mit OK, OK, OK.

  • Unter Windows XP aktivieren wir den Dialog Systemeigenschaften unter StartEinstellungenSystemsteuerungSystem. Unter dem Reiter Erweitert wählen wir die Schaltfläche Umgebungsvariablen, wo wir anschließend bei Systemvariablen die Variable Path auswählen und mit Bearbeiten verändern – natürlich können statt der Systemvariablen auch die lokalen Benutzereinstellungen modifiziert werden; da gibt es Path noch einmal. Hinter einem Semikolon tragen wir den Pfad zum bin-Verzeichnis ein. Dann können wir den Dialog mit OK, OK, OK verlassen. War eine Eingabeaufforderung offen, bekommt sie von der Änderung nichts mit; ein neues Eingabeaufforderungsfenster muss geöffnet werden.

Weitere Hilfen gibt die Datei http://tutego.de/go/installwindows.

 
Zum Seitenanfang

1.5.2Ein Quadratzahlen-Programm Zur vorigen ÜberschriftZur nächsten Überschrift

Das erste Programm zeigt einen Algorithmus, der die Quadrate der Zahlen von 1 bis 4 ausgibt. Die ganze Programmlogik sitzt in einer Klasse Quadrat, die drei Methoden enthält. Alle Methoden in einer objektorientierten Programmiersprache wie Java müssen in Klassen platziert werden. Die erste Methode, quadrat(int), bekommt als Übergabeparameter eine ganze Zahl und berechnet daraus die Quadratzahl, die sie anschließend zurückgibt. Eine weitere Methode übernimmt die Ausgabe der Quadratzahlen bis zu einer vorgegebenen Grenze. Die Methode bedient sich dabei der Methode quadrat(int). Zum Schluss muss es noch ein besonderes Unterprogramm main(String[]) geben, das für den Java-Interpreter den Einstiegspunkt bietet. Die Methode main(String[]) ruft dann die Methode ausgabe(int) auf.

Listing 1.1Quadrat.java

/**
* Erstes Java Beispielprogramm.
* @version 1.02 26 Dez 2013
* @author Christian Ullenboom
*/
public class Quadrat {

static int quadrat( int n ) {
return n * n;
}

static void ausgabe( int n ) {
for ( int i = 1; i <= n; i = i + 1 ) {
String s = "Quadrat(" + i + ") = " + quadrat( i );
System.out.println( s );
}
}

public static void main( String[] args ) {
ausgabe( 4 );
}
}

[+]Hinweis

Der Java-Compiler unterscheidet sehr penibel zwischen Groß- und Kleinschreibung.

Der Quellcode (engl. source code) für Quadrat.java soll exemplarisch im Verzeichnis C:\projekte\ gespeichert werden. Dazu kann ein einfacher Editor wie Notepad (StartProgrammeZubehörEditor) unter Windows verwendet werden. Beim Abspeichern mit Notepad unter DateiSpeichern unter… muss bei DateinameQuadrat.java stehen und beim Dateityp Alle Dateien ausgewählt sein, damit der Editor nicht automatisch die Dateiendung .txt vergibt.

 
Zum Seitenanfang

1.5.3Der Compilerlauf Zur vorigen ÜberschriftZur nächsten Überschrift

Wir wechseln zur Eingabeaufforderung (Konsole) und in das Verzeichnis mit dem Quellcode. Liegt die Quellcodedatei vor, übersetzt der Compiler sie in Bytecode. Für unsere Java-Klasse in der Datei Quadrat.java heißt das:

C:\projekte>javac Quadrat.java

Die zu übersetzende Datei muss – ohne Dateiendung – so heißen wie die in ihr definierte öffentliche Klasse. Die Beachtung der Groß- und Kleinschreibung ist wichtig. Alle Java-Klassen übersetzt javac *.java. Eine andere Endung, wie etwa .txt oder .jav, ist nicht erlaubt und führt zu einer Fehlermeldung:

C:\projekte>javac Quadrat.txt
Quadrat.txt is an invalid option or argument.
Usage: javac <options> <source files>

Der Compiler legt – vorausgesetzt, das Programm war fehlerfrei – die Datei Quadrat.class an. Diese enthält den Bytecode.

Findet der Compiler in einer Zeile einen Fehler, so meldet er diesen unter der Angabe der Datei und der Zeilennummer. Nehmen wir noch einmal unser Quadratzahlen-Programm, und bauen wir in der quadrat(int)-Methode einen Fehler ein (das Semikolon fällt der Löschtaste zum Opfer). Der Compilerdurchlauf meldet:

Quadrat.java:10: ';' expected.
return n * n
^
1 error
 
Zum Seitenanfang

1.5.4Die Laufzeitumgebung Zur vorigen ÜberschriftZur nächsten Überschrift

Der vom Compiler erzeugte Bytecode ist kein üblicher Maschinencode für einen speziellen Prozessor, da Java als plattformunabhängige Programmiersprache entworfen wurde, die sich also nicht an einen physikalischen Prozessor klammert – Prozessoren wie Intel-, AMD- oder PowerPC-CPUs können mit diesem Bytecode nichts anfangen. Hier hilft eine Laufzeitumgebung weiter. Diese liest die Bytecode-Datei Anweisung für Anweisung aus und führt sie auf dem konkreten Mikroprozessor aus.

Der Interpreter java bringt das Programm zur Ausführung:

C:\projekte>java Quadrat
Quadrat(1) = 1
Quadrat(2) = 4
Quadrat(3) = 9
Quadrat(4) = 16

Als Argument bekommt die Laufzeitumgebung java den Namen der Klasse, die eine main(…)-Methode enthält und somit als ausführbar gilt. Die Angabe ist nicht mit der Endung .class zu versehen, da hier kein Dateiname, sondern ein Klassenname gefordert ist.

 
Zum Seitenanfang

1.5.5Häufige Compiler- und Interpreter-Probleme Zur vorigen ÜberschriftZur nächsten Überschrift

Arbeiten wir auf der Kommandozeilenebene (Shell) ohne integrierte Entwicklungsumgebung, können verschiedene Probleme auftreten. Ist der Pfad zum Compiler nicht richtig gesetzt, gibt der Kommandozeileninterpreter eine Fehlermeldung der Form

$ javac Quadrat.java
Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Bitte überprüfen Sie die Schreibweise und die Umgebungsvariable 'PATH'.

aus. Unter Unix lautet die Meldung gewohnt kurz:

javac: Command not found

Lösung ist hier also, javac in den Suchpfad aufzunehmen, wie wir es vorher schon beschrieben haben.

War der Compilerdurchlauf erfolgreich, können wir den Interpreter mit dem Programm java aufrufen. Verschreiben wir uns bei dem Namen der Klasse oder fügen wir unserem Klassennamen das Suffix .class hinzu, so meckert der Interpreter. Beim Versuch, die nicht existente Klasse Q zum Leben zu erwecken, schreibt der Interpreter auf den Fehlerkanal:

$ java Q.class
Exception in thread "main" java.lang.NoClassDefFoundError:Q/class

Ist der Name der Klassendatei korrekt, hat aber die Hauptmethode keine Signatur public static void main(String[]), so kann der Java-Interpreter keine Methode finden, bei der er mit der Ausführung beginnen soll. Verschreiben wir uns bei der main(…)-Methode in Quadrat, folgt die Fehlermeldung:

In class Quadrat: void main(String argv[]) is not defined

[+]Hinweis

Der Java-Compiler und die Java-Laufzeitumgebung haben einen Schalter -help, der weitere Informationen zeigt.

 


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
 Zum Katalog
Zum Katalog: Java ist auch eine Insel Java ist auch eine Insel
Jetzt bestellen

 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java SE 8 Standard-Bibliothek
Java SE 8 Standard-Bibliothek


Zum Katalog: Professionell entwickeln mit Java EE 7
Professionell entwickeln mit Java EE 7


Zum Katalog: Schrödinger programmiert Java
Schrödinger programmiert Java


Zum Katalog: Einführung in Java
Einführung in Java


Zum Katalog: Programmieren lernen mit Java
Programmieren lernen mit Java


Zum Katalog: Apps entwickeln für Android 5
Apps entwickeln für Android 5


Zum Katalog: Apps entwickeln mit Android Studio
Apps entwickeln mit Android Studio


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2016
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de