Erste Schritte mit Java

Java unter Linux mit CLI und IDE

Logo

Einige Daten

  • Von Sun entwickelt und 1995 veröffentlicht
  • Entwicklung vom "Green Team" unter der Leitung von James Gosling
  • Ursprünglich nannten die Entwickler Ihre Sprache "Oak"
  • Ursprünglich entwicklet um interaktive elektronische Geräte zu betreiben und zu vernetzen
  • Versuch die Technologie an Kabelfernseh Unternehmen zu verkaufen. Die Idee war aber zu visionär.
  • Idee wurde geboren Java als eine Programmiersprache "für das Internet" einzusetzen.
  • Wurde erstmals im eigenen Browser "Webrunner" (später umbenannt in "HotJava") eingesetzt.
  • Übereinkommen mit Netscape, dass der Browser mit Java ausgeliefert wird.

Ziele der Sprache

Sie soll eine:

  • einfache, objekt-orientierte, verteilte und vertraute Programmiersprache sein.
  • robust und sicher
  • architekturneutral und portabel
  • leistungsfähig
  • interpretierbar, parallelisierbar und dynamisch

Java Grundlagen auf der Kommandozeile

Hello World in Java

$ sudo apt-get install openjdk-6-jdk
$ gedit HelloWorld.java
public class HelloWorld {
    public static void main(String[] argv) {
        System.out.println("Hello World!");
    }
}
$ javac HelloWorld.java
$ java HelloWorld
Hello World!
$
$ javac HelloWorld.java
$ ls
HelloWorld.class  HelloWorld.java
$ java HelloWorld
Hello world!
$

Java Packages auf der Kommandozeile

$ mkdir -p ch/jaros
$ gedit ch/jaros/HelloPackage.java
package ch.jaros;
 
public class HelloWorld {
    public static void main(String[] argv) {
        System.out.println("Hello Package!");
    }
}
$ javac ch/jaros/HelloPackage.java
$ ls ch/jaros/
HelloPackage.class  HelloPackage.java
$ java ch/jaros/HelloPackage 
Hello Package!
$

Kommandozeile mit Maven 2

$ sudo apt-get install maven2
$ mvn archetype:generate -DgroupId=ch.jaros \
-DartifactId=03_Maven_HW \
-DinteractiveMode=false
$ cd 03_Maven_HW
~/03_Maven_HW$ ls 
pom.xml src
~/03_Maven_HW$ gedit src/main/java/ch/jaros/App.java
~/03_Maven_HW$ mvn package
...
~/03_Maven_HW$ mvn exec:java -Dexec.mainClass="ch.jaros.App"
...
Hello World!
...

Verzeichnis vor dem Kompilieren...


$ tree
.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── ch
    │           └── jaros
    │               └── App.java
    └── test
        └── java
            └── ch
                └── jaros
                    └── AppTest.java
... [gekürzt]
│   │               └── App.java
│   └── test
│       └── java
│           └── ch
│               └── jaros
│                   └── AppTest.java
└── target
    ├── 03_Maven_HW-1.0-SNAPSHOT.jar
    ├── classes
    │   └── ch
    │       └── jaros
    │           └── App.class
    ├── maven-archiver
    │   └── pom.properties
    ├── surefire
    ├── surefire-reports
    │   ├── ch.jaros.AppTest.txt
    │   └── TEST-ch.jaros.AppTest.xml
    └── test-classes
        └── ch
            └── jaros
                └── AppTest.class

Entwickeln mit Intellij IDEA

Auf die Download-Seite gehen und die Community-Edition herunterladen

  • Ich lege selber installierte Programme immer unter "~/bin" ab.
  • Start-Script verlinken:
    $ mkdir bin
    $ cd bin
    ~/bin$ ln -s idea-IC-117.798/bin/idea.sh idea
    ~/bin$ cp idea-IC-117.798/bin/idea.png .
    ~/bin$ cd
    $ gedit .bashrc

    Am Ende der Datei einfügen:

    export PATH=$PATH:$HOME/bin

Starter einrichten

$ gedit ~/.local/share/applications/idea.desktop
[Desktop Entry]
Name=Intellij IDEA
Comment=
Exec=/home/madmike/bin/idea
Icon=/home/madmike/bin/idea.png
Terminal=false
Type=Application
Categories=Application;Development;Java;IDE
StartupNotify=true

Intellij-Projekt generieren

    $ cd 03_Maven_HW
    ~/03_Maven_HW$ mvn idea:idea
  • Intellij Idea starten
  • Menu: File -> Open Project ...
  • Datei ~/03_Maven_HW/03_Maven_HW.ipr auswählen

Intellij konfigurieren

  • In der Toolbar Dreier-Stapel-blaue-Kisten Icon drücken
  • "SDKs" drücken
  • /usr/bin/jvm/java-1.6.0-openjdk auswählen
  • 2x "OK"
  • In der Toolbar Dreieck-das-nach-unten-zeigt Icon drücken.
  • Edit Configuration.
  • "[+]"-drücken.
  • "Application" clicken.
  • In der Zeile "Main class": "App" eingeben und Vorschlag wählen.
  • "OK" drücken.

Klassen und Objekte

Aus einer Klasse können ein oder mehrere Objekte erstellt werden.

// Datei: Hund.java

public class Hund {
    private String name;

    public Hund() {}

    public void setName(String n) {
        this.name = n;
    }

    public String getName() {
        return this.name;
    }

    public void gibLaut() {
         System.out.println("Wau!");
    }
}
// Datei: App.java

public class App {
    public static void main(String argv[]) {
        Hund hund1 = new Hund();
        hund1.setName("Bello");
        Hund hund2 = new Hund();
        hund2.setName("Blue");
        System.out.println("Der Hund hund1 heisst '" + hund1.getName() + "'");
        System.out.println("Der Hund hund2 heisst '" + hund2.getName() + "'");
        hund1.gibLaut();
        hund2.gibLaut();
    }
}
$ javac *.java
$ java App
Der Hund hund1 heisst 'Bello'
Der Hund hund2 heisst 'Blue'
Wau!
Wau!

Objekte weitergeben

Objekte können an andere Objekte weitergegeben werden.

// Datei: HundeSchule.java

public class HundeSchule {

    public HundeSchule() {}
    
    public void hundAbgeben(Hund hund) {
        System.out.println("Der Hund heisst '" + hund.getName() + "'");
        hund.gibLaut();
    }
}
// Datei: App.java

public class App {
    public static void main(String argv[]) {
        Hund hund1 = new Hund();
        hund1.setName("Bello");
        Hund hund2 = new Hund();
        hund2.setName("Blue");

        HundeSchule hs = new HundeSchule();
        hs.hundAbgeben(hund1);
        hs.hundAbgeben(hund2);
    }
}
$ javac *.java
$ java App
Der Hund heisst 'Bello'
Wau!
Der Hund heisst 'Blue'
Wau!

Interface

Klassen können sich ein oder mehrere Interfaces aneignen. Dies erlaubt es, den Code etwas dynamischer zu machen.

// Datei: Tier.java

public interface Tier {
    
    public String getName();
    
    public void gibLaut();}
}
// Datei: Hund.java mit einer Änderung

public class Hund implements Tier{
    private String name;

    public Hund() {}

    public void setName(String n) {
        this.name = n;
    }

    public String getName() {
        return this.name;
    }

    public void gibLaut() {
         System.out.println("Wau!");
    }
}
// Datei: Katze.java

public class Katze implements Tier{
    private String name;

    public Katze() {}

    public void setName(String n) {
        this.name = n;
    }

    public String getName() {
        return this.name;
    }

    public void gibLaut() {
         System.out.println("Miau!");
    }
}
// Datei: TierSchule.java

public class TierSchule {

    public TierSchule() {}
    
    public void tierAbgeben(Tier tier) {
        System.out.println("Das Tier heisst '" + tier.getName() + "'");
        tier.gibLaut();
    }
}
public class App {
    public static void main(String argv[]) {
        Hund hund1 = new Hund();
        hund1.setName("Bello");
        Hund hund2 = new Hund();
        hund2.setName("Blue");
        Katze katze = new Katze();
        katze.setName("Minusch");

        TierSchule hs = new TierSchule();
        hs.tierAbgeben(hund1);
        hs.tierAbgeben(hund2);
        hs.tierAbgeben(katze);
    }
}
Das Tier heisst 'Bello'
Wau!
Das Tier heisst 'Blue'
Wau!
Das Tier heisst 'Minusch'
Miau!

ENDE

 

Freies Maven Buch

Sehr gutes Java-Buch:

Buch Cover: Java von Kopf bis Fuss