Java 8 in Ubuntu 14.04

Standardmäßig kommt unter Ubuntu 14.04 Java 7 zum Einsatz, genaugenommen OpenJDK 7u55. Wenn Sie die neue Java-Version 8 ausprobieren möchten, zeigt Ihnen dieser Beitrag, wie Sie Java 8 und eine Lambda-kompatible Eclipse-Version installieren.

Java 8 von Oracle installieren

Die Open-Source-Version von Java 8, also OpenJDK 8, ist noch in Entwicklung und steht daher noch nicht als Ubuntu-Paket zur Verfügung. Wenn Sie Java 8 ausprobieren möchten, müssen Sie daher die originalen Java-Pakete von Oracle verwenden. Am einfachsten gelingt die Installation mit dem oracle-java8-installer der webupd8-Paketquelle. Installiert werden damit sowohl die Entwicklerpakete als auch das Java-Plugin für den Webbrowser. Beachten Sie aber, dass diese Java-Version nicht von Ubuntu gewartet wird und Sie somit auf die fünfjährige Update-Garantie verzichten.

sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default
java -version 
  java version "1.8.0"
  Java(TM) SE Runtime Environment 
    (build 1.8.0_5-b13)
  Java HotSpot(TM) 64-Bit Server VM 
    (build 25.5-b02, mixed mode)
javac -version
  javac 1.8.0_05

Eclipse Luna installieren

Die beliebte Java-Entwicklungsumgebung Eclipse ist zwar als Paket in den Ubuntu-Quellen enthalten, die dort befindliche Version ist aber uralt und nicht Java-8-kompatibel. Verwenden Sie stattdessen die aktuelle Version 4.4 Luna:

https://www.eclipse.org/downloads/

Die Eclipse-Pakete sind simple tar-Archive. Nach dem Download packen Sie Eclipse mit tar xzf in einem Terminalfenster im Heimatverzeichnis aus und starten es dann mit eclipse/eclipse:

cd
tar xzf Downloads/eclipse-xxx-x86_64.tar.gz
eclipse/eclipse &

Hello Lambda World!

In Eclipse erstellen Sie nun ein neues Projekt, darin eine neue Klasse und fügen dort den folgenden Code ein:

import java.util.*;

public class HelloLambda {
  public static void main(String[] args) {
    List<String> lst = 
      Arrays.asList("Hello ", 
                    "Lambda-", 
                    "World!n");
    lst.forEach( s->System.out.print(s) );
  }
}

Wenn sich das Programm starten und ausführen lässt, dann funktioniert alles und Sie haben Ihre erste Lambda-Funktion formuliert: lst.forEach durchläuft alle Elemente der Liste und wendet auf jedes Element den Lambda-Ausdruck s->System.out.println(s) an. Damit wird also jedes Listenelement ausgegeben.

Das Programm »Hello Lamda-World!« in Eclipse
Das Programm »Hello Lamda-World!« in Eclipse

Hinweis: Wenn der Einsatz von Lambda-Ausdrücken zu Syntaxfehlern führt, liegt dies vermutlich daran, dass in Eclipse eine ältere Java-Version eingestellt ist. Der Compiler compliance level muss 1.8 lauten!

Die korrekte Compiler-Einstellung für Java-8-Projekte
Die korrekte Compiler-Einstellung für Java-8-Projekte

Eclipse-Starter für die Seitenleiste

Der Start von Eclipse aus einem Terminal-Fenster heraus ist auf die Dauer wenig elegant. Wenn Sie ein Starter-Icon im Launcher (also in der Taskbar) wünschen, erstellen Sie zuerst eine entsprechende Desktop-Datei:

gedit ~/.local/share/applications/eclipse-luna.desktop

In dieser Datei speichern Sie den folgenden Text, wobei Sie natürlich den Installationspfad von Eclipse anpassen müssen:

[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=/home/kofler/eclipse/icon.xpm
Exec=/home/kofler/eclipse/eclipse
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=Eclipse

Nachdem Sie die Datei gespeichert haben, öffnen Sie das Verzeichnis mit den .desktop-Dateien in Nautilus:

nautilus ~/.local/share/applications

Nun können Sie die Datei eclipse-luna.desktop einfach per Drag&Drop in den Launcher verschieben.

Eclipse-Icon im Launcher
Eclipse-Icon im Launcher