An sich ist Java ja eine gute Idee: Man ist völlig plattformunabhängig, überall wird die gleiche Sprache gesprochen, Java ist überall vorinstalliert etc. Leider sieht die Realität aus der Sicht eines Nicht-Java-Gurus wie mir etwas trauriger aus. :-( Bereits mehrere Male hatte ich es mit Java-Programmen zu tun, die ich als Laie "mal eben" unter Debian ausprobieren wollte. Dabei musste ich jedes mal Java neu installieren und wusste nicht mehr, woher ich das nun nehmen soll...
Der Grund, dass Java insbesondere unter Debian nicht anständig unterstützt wird, liegt wohl irgendwo in den Lizenzen der Sprache und der benötigten Programme verborgen. Mehr dazu weiter unten.
Anfang 2007 gab es eine DiskussionJavaStart mit jemandem, der neu mit Java anfangen wollte. Dort stehen für Neulinge evtl. auch einige interessante Tips, die hier noch nicht eingearbeitet wurden.
In der offiziellen Debian Distribution gibt es nur freie Implementierungen der Sprache Java, die aber viele Programme bisher nicht ausführen können.
. Damit wird der Weg für Debian frei. (MarkusMonderkamp zitiert aus dem Heise-Ticker)Es gibt zwei "Debian"-Wege doch zu einem "richtigen" Java zu kommen. Wenn ein Java 1.3 oder 1.4 genügt, kann man die Pakete des Blackdown Projektes benutzen. Dort wird das Java von Sun für verschiedene Linux Plattformen (z.B. auch PowerPC) portiert. Dazu trägt man in die /etc/apt/sources.list zum Beispiel ein:
deb http://ftp2.skynet.be/pub/ftp.blackdown.org/debian/ sarge non-free
Dann ruft man auf
apt-get update apt-get install j2sdk1.4
oder auch
apt-get install j2re1.4
wenn einem die Java-Laufzeitumgebung genügt.
Der zweite Weg: Man lädt sich das SDK für Linux als .bin-Datei von
http://java.sun.com
herunter.
Dann installiert man das Paket java-package (in Debian/contrib):
apt-get install java-package
Damit wird das Skript make-jpkg installiert, mit dem man aus der .bin-Datei ein Debian-Paket erzeugt. Das wird dann ganz normal installiert. Zum Beispiel:
fakeroot make-jpkg jre-1_5_0_02-linux-i586.bin dpkg -i sun-j2re1.5_1.5.0+update02_i386.deb
Übrigens kann java-package auch die IBM-Implementierung von Java zu einem Paket machen. Diese läuft ebenfalls anstandslos unter Debian Linux. Im Gegenteil ist mir mit dem Java von Sun mein Eclipse auf einem UML-System dauernd abgestürzt - mit dem IBM-Java gehts. -- ThomasBayen
Unter Linux gibt es mittlerweile eine ganze Anzahl von Java-Virtuellen-Maschinen, die ich für die eigene Programmentwicklung auf jeden Fall empfehle (wir wollen doch freie Software entwickeln, oder?):
Die freien Java-Implementierungen sind mittlerweile durchaus in der Praxis einsetzbar. Ab Kaffe 1.1.3 läuft der Tomcat 4 unter dieser VM und an Eclipse wird heftig gearbeitet: Mit GCJ 4.0 soll Eclipse 3.1 out of the Box funktionieren!
- Homepage des Java-Buildtools ApacheAnt (vergelichbar mit make)
- Programm, das eine Java-Hilfe anbietet (kostenlos, aber nicht frei)
- Buch "Java ist auch eine Insel" (deutsch)
- Buch "Java 2 Magnum" (deutsch)
- Buch "Java 2 Kompendium" (deutsch)
- Anleitung zum Javadoc-Tool, um automatisch API-Dokumentationen zu erstellen
Java-Template-Engines
- Übersicht über Template-Engines
- Das, was alle benutzen. erprobt und stabil, hat aber Grenzen, wenn es an komplexe Probleme geht<br>(Nachtrag von Markus) - Aufnahme von Velocity in Debian-http://packages.debian.org/unstable/web/velocity Pool
laut http://www.debian.org/News/weekly/2005/17/ Debian-Weekly-News
Nr. 17/2005
- scheint sehr gut Komponenten zu unterstützen, inspiriert von http://teatrove.sourceforge.net/ Mason
- Template-Sprache von Disney. gute Doku, aber letzte Version von 2002
- Reportgenerator (kein echte Template-Engine), macht einen sehr guten Eindruck
- Übersicht über JSP Tag Libraries
- ZOPE Templates sehen sehr interessant aus, zwei Java-Implementierungen:
- Das, was alle benutzen: Alt, ausgereift, große Nutzerbasis, etwas angestaubt und wenig innovativ
- Jakarta-Projekt, das behauptet, etwas moderner zu sein als Struts
- hat einen interessanten objektorientierten (statt aktionsorientierten) Ansatz
- intelligente Idee, um Objekte lose zu koppeln (aber IMHO seltsam umgesetzt), umfangreiche Doku, alles in allem etwas aufgebläht
- Schlanker als Struts, sieht nützlich aus, aber letzte Version von Oktober 2004, Update: es gibt eine neue Version von Januar 2007
- Servlets-Framework, das Freemarker und Velocity unterstützt, nichts Neues seit 2002
- Soll mit dem berühmten http://www.rubyonrails.org/ Ruby on Rails
vergleichbar sein
- darf nicht Groovy on Rails heißen ;-) und schon die Version 0.1 sieht sehr verheißungsvoll aus
- Klare Trennung von HTML und Java
- Nutzt Java5-Annotations und Velocity oder Framemaker, sieht interessant aus
- Persistenz-Framework - deutsche Artikel z.B.
enthält eine standardisierte Persistenz API, die Glassfish-Implementierung steht unter einer Opensource-Lizenz (der CDDL
). Die API wird auch von Hibernate unterstützt.
Swing
- freie Swing-Bibliotheken, insbesondere der LayoutManager Forms
- Übersicht über Testing Tools
- guter Artikel, wie man es selber machen kann
- uispec4j hat eine sehr schöne API (die Tests sind einfach zu lesen). Es arbeitet, ohne echte Fenster zu öffnen, das ist schneller, kann aber nicht alles (z.B. Focus)
- jfcunit wird oft genannt, es funktioniert bei mir sehr gut. Es steuert "live" Fenster und man kann sogar mit dem Debugger zusehen, wie die GUI sich bewegt
- Artikel über jfcunit
- swingunit arbeitet mit XMl-Dateien zur Testkonfiguration
- Jemmy (wird in Netbeans verwendet)