Aller Anfang ist schwer und eine genaue Anleitung im Unterricht bringt überhaupt nichts, weil man da ja mitschreiben und -denken müsste. Hier also nochmal eine Zusammenfassung (jetzt auch als Video).
Man lädt sich eine riesige Installationsdatei herunter, führt sie ein einziges Mal aus und löscht sie dann wieder. Danach kann der Browser Java und auf dem Rechner ist es auch allgemein verfügbar, wenn man weiß, wo es ist. Im einzelnen tut man folgendes:
Programmieren lernt man durch programmieren, aber erst, wenn man einmal genau verstanden hat, was alles passiert. Man muss wissen
Am Anfang sollte man keine komplizierten Hilfsmittel verwenden, weil die das Verständnis verschleiern. Also lieber kein Eclipse, NetBeans o.ä. sondern einfach alles aus der DOS-Box heraus! Aber die muss man auch erst mal haben.
Öffne also eine Eingabeaufforderung (Windows) oder Konsole (Linux). Normalerweise ist der aktuelle Aufenthaltsort dann das Home-Verzeichnis des aktuellen Users. Die folgenden Schritte gelten für Windows-User. Wer dazu nicht gehört, weiß wahrscheinlich eh schon, wie man einen Computer bedient.
cd Desktop
wenn es dich nicht stört, dass alles auf dem Schreibtisch rumliegt. Wenn deine Dateien auf den Memory-Stick (mit Laufwerksbuchstabe M
) ins Verzeichnis javaprogramme
sollen, kannst du tippen
m: cd javaprogramme
dir
gvim Test.java
Beachte, dass hier ausnahmsweise ein Großbuchstabe im Namen erwünscht ist.
Will man aus dem vom Menschen lesbaren Programmtext Test.java
ein ausführbares Programm machen, so muss man den Text dem Compiler javac
geben. Der erzeugt daraus die Datei Test.class
, falls keine Fehler gemacht wurden. Danach sieht man am besten gleich nach, ob die class
-Datei auch wirklich da ist.
c:\programme\java\jdk\bin\javac Test.java dir
Beachte, dass man dem Rechner sagen muss, wo javac
ist, weil er es alleine nicht findet. Deshalb ist es bei der Installation so wichtig, einen Pfad anzugeben, an den man sich später noch erinnern kann.
Nun wollen wir das Programm noch ausführen. Das tut der Befehl java
, der auf dem gleichen Pfad wie javac
liegt, also
c:\programme\java\jdk\bin\java Test Susi
Während der weiteren Entwicklung eines Programms muss man all diese Schritte mehrfach ausführen. Glücklicherweise braucht man dafür jetzt auch in der DOS-Box nur noch die Pfeil-Tasten drücken, um die vorher mühsam getippten Befehle wieder zu bekommen.
Vereinzelt höre ich von Schülern, dass Sie alles so gemacht haben, wie hier beschrieben, dass aber Java die fertig kompilierten .class
-Dateien nicht findet. Im Arbeitsverzeichnis befinden sich dann z.B. die Dateien Test.java
und Test.class
, aber der Befehl
c:\programme\java\jdk\bin\java Test Susi
führt zu einem NoClassDefFoundError
.
In diesem Fall ist bei der Installation von Java eine Kleinigkeit schief gegangen und der java
-Befehl sucht nicht automatisch im aktuellen Verzeichnis nach der .class
-Datei. Es soll jetzt nicht besprochen werden, was da schief gelaufen ist. Ein einfacher Ausweg ist aber, dass man beim Aufruf von java
ausdrücklich angibt, dass java
im aktuellen Verzeichnis nach Klassen suchen soll. Das geht dann so:
c:\programme\java\jdk\bin\java -cp . Test Susi
Der Punkt steht für das aktuelle Verzeichnis.
Die ersten Programme haben keine schöne Oberfläche; sie laufen einfach im Textmodus. Trotzdem müssen sie nicht dumm oder langweilig sein! Schon im Textmodus kann man Daten eingeben, verarbeiten und Ergebnisse ausgeben, und das ist der Kern eines jeden Programms.
Die Ausgabe ist überhaupt kein Problem, es gibt ja die Befehle
System.out.print("Hallo ihr "); System.out.println(""+(1+1)+" Turteltäubchen!");
print
schreibt etwas hin und belässt den Cursor hinter dem letzten
geschriebenen Zeichen. Die nächste Ausgabe wird also nahtlos dahinter angefügt.
println
schreibt ebenfalls etwas hin, geht abschließend aber an den Anfang
der nächsten Zeile. Die obigen beiden Befehle schreiben also
Hallo ihr 2 Turteltäubchen!
auf den Bildschirm und fangen dann eine neue Zeile an. Der nächste
Schreibbefehl würde also unter dem H
anfangen.
Eingabe gibt es in zwei Formen. Wenn der Benutzer vor dem Start des
Programms schon weiß, wie viele und welche Daten er eingeben will,
so kann er diese Daten direkt nach dem Programmnamen beim Start des
Programms angeben. Im Programm hat er Zugriff auf diese Daten über
das Array args
(siehe im Beispiel weiter oben.)
Die zweite Form der Eingabe verwendet man, wenn man die Daten erst eingeben
will, sobald das Programm schon läuft. Man braucht dazu einen Scanner
, der
die Systemeingabe einfängt. Die erste Zeile des folgenden Beispiels
schreibt man einmal am Anfang des Programms. Ab dann kann man die
Tastatureingabe beliebig oft ansprechen mit z.B. tastatur.nextInt()
java.util.Scanner tastatur=new java.util.Scanner(System.in); System.out.print("Wie viele seid ihr? "); int anz=tastatur.nextInt(); System.out.println("Hallo ihr "+anz+" Turteltäubchen!");
Außer nextInt()
für ganze Zahlen gibt es noch nextDouble()
für
Kommazahlen oder next()
für irgendeine Buchstabenfolge.
Mit hasNext()
kann man testen, ob noch etwas kommt.
In Java gibt es eine große Menge von vorgefertigten Programmpaketen, die man als brauchbare Teile von eigenen Projekten verwenden kann. Diese Pakete befinden sich nach der Installation auf dem Rechner (gepackt in .jar-Dateien). Was es gibt und wie man es verwendet, muss man aber erst einmal wissen.
Wie gelangt man zu diesem Wissen? Das ist ein langsamer Prozess, bei dem man anderen Programmierern zusieht und sich mit ihnen austauscht. Der grundsätzliche Zugang ist aber immer die mitgelieferte Dokumentation. Diese besteht aus tausenden .html-Dateien, die mit einem Browser gelesen und durchsucht werden können.
Die Dokumentation sollte man sich auf seinen Rechner holen, damit man sie immer zur Verfügung hat. Man bekommt sie als große .zip-Datei, die man an eine beliebige Stelle auspackt, sagen wir ins Verzeichnis …/java/docs/
. Eine der Dateien heißt dann docs/api/index.html
und ist der Startpunkt der ganzen Dokumentation. Auf diese Datei sollte man im Browser ein Lesezeichen setzen.
Die große .zip-Datei gibt es für jede Java-Version an der gleichen Stelle, wie schon die ganze Java-Installation (siehe obige Beschreibung der Java-Installation). Wenn man einen schnellen Netzzugang hat, kann man die Dokumentation aber auch im Internet finden. Für Java 1.6 ist sie bei http://docs.oracle.com/javase/7/docs/api/.
Die Dokumentation wird mit einem Browser gelesen. Sie wird dargestellt als eine Seite mit drei Frames. Der rechte, große Frame zeigt dabei den Inhalt an, der im linken unteren Frame ausgewählt wurde. Was der linke untere Frame zur Auswahl anbietet, kann im linken oberen Frame nochmals eingeschränkt werden, weil die Menge so riesig ist. Lassen Sie im linken oberen Frame aber die erste Zeit die Wahl auf All Classes, dann entgeht Ihnen nichts.
Als Beispiel wollen wir mit Hilfe des Kosinus-Satzes die dritte Seitenlänge eines Dreiecks ausrechnen, von dem zwei Seiten und der eingeschlossene Winkel gegeben sind.
public class Seite{ public static void main(String[] args){ double a=Double.parseDouble(args[0]); double b=Double.parseDouble(args[1]); double gamma=Double.parseDouble(args[2])*Math.PI/180; double c=a*a+b*b-2*a*b*Math.cos(gamma); c=Math.sqrt(c); System.out.println("c="+c); } }
Das Programm wird mit drei String-Argumenten aufgerufen, z.B.
java Seite 2.4 3.2 72
mit dem Ergebnis
c=3.35462352083
In diesem Programm werden zwei Java-Klassen verwendet Math
und Double
. Wenn man sich die in der Dokumentation anschaut, erfährt man schnell, dass parseDouble
aus einem String eine Kommazahl macht, dass Math.PI
der Wert von π ist und dass Math.cos
den Kosinus eines Winkels im Bogenmaß ausrechnet. Außerdem bekommt man mit Math.sqrt
die Wurzel berechet. (Die Zeile double c=…
berechnet ja erst einmal nicht c sondern c2, was übrigens kein schöner Stil ist.)