Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:java:einstieg

Erste Schritte in Java

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).

Installation von Java

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:

  1. Gehe zur Download-Seite von Sun und lade den aktuellen JDK herunter. Akzeptiere hierzu die Bedingungen und wähle am besten die Offline-Installation. Damit bekommst du nämlich alles in einer großen Datei. Lege die Datei ruhig auf dem Desktop ab, du wirst sie eh bald wieder wegschmeißen!
  2. Führe die Datei als Administrator aus. Damit wird Java installiert. Wenn die Stelle kommt, wo du den Installationspfad angeben kannst, ändere ihn zu etwas einfachem, also z.B. c:\programme\java\jdk für den JDK und c:\programme\java\jre für die JRE. Beides wird nämlich installiert. Frage nicht, was es ist, das ist schon gut so.
  3. Surfe hierher, um zu sehen, ob der Browser jetzt Java kann. Wenn da ein 1×1-Trainer erscheint, funktioniert Java und ist auf dem Rechner installiert.
  4. Lösche die Installationsdatei vom Desktop. Sie wird nicht mehr gebraucht. Wenn du Freunde hast, die an unzugänglichen Stellen des Landes leben (also ohne DSL), dann wirf die Datei nicht weg, sondern gib sie ihnen auf einem Memory-Stick!

Programmieren in Java

Programmieren lernt man durch programmieren, aber erst, wenn man einmal genau verstanden hat, was alles passiert. Man muss wissen

  • wie die Datei heißt, die man gerade bearbeitet,
  • wo die Datei ist,
  • wie man den Compiler aufruft, der aus der Datei ein ausführbares Programm macht
  • und wie man das ausführbare Programm ausführt.

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.

  1. Gehe in das Verzeichnis, wo du dein Programm am Ende haben willst. Tippe also z.B.
    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
  2. Um zu sehen, welche Dateien schon da sind, tippe
    dir
  3. Starte nun den Editor deiner Wahl, z.B. GVim und gib gleich den Namen der Datei an, die du erzeugen willst. Die Datei wird sich am Ende genau in diesem Verzeichnis hier befinden, von wo du den Editor gestartet hast.
    gvim Test.java

    Beachte, dass hier ausnahmsweise ein Großbuchstabe im Namen erwünscht ist.

  4. Schreibe nun das Programm und vergiss nicht, es auch abzuspeichern. Mit Vim macht man das durch Esc : w
    Das Programm könnte folgenden Inhalt haben:
    public class Test{
      public static void main(String[] args){
        System.out.println("Hallo "+args[0]);
      }
    }

Kompilieren und Ausführen

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.

Seltsames Verhalten

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.

Aus- und Eingabe

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.

Die Java-Dokumentation

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.

Wo ist sie?

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/.

Wie wird sie benutzt?

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.)

info/java/einstieg.txt · Zuletzt geändert: 2012/08/18 14:41 von admin