Dies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.

Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an und entferne diesen Text.

Vielen Dank!

= Java unter Debian =

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.

== Blackdown Java ==

In der offiziellen Debian Distribution gibt es nur freie
Implementierungen der Sprache Java, die aber viele Programme bisher
nicht ausführen können. 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.

== Das Original von Sun ==

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

== Wirklich Frei ==

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!

* Mit dem Gnu-Java-Compiler (GCJ) lassen sich viele Java-Projekte
in Binär-Code übersetzen. Wenn jemand freie Software mit Java
entwickeln will, dann empfehle ich diesen Weg, denn so lassen sich
auch Binärprogramme für Windows kompilieren!

* Auch im Debian-Projekt tut sich einiges. Durch die Fortschritte
bei Kaffe und beim GCJ können viele Java-Bibliotheken und Programme
mit diesen Compilers und Java-VMs übersetzt werden. Sie wandern
dann in die Debian-Main-Distribution. Siehe
http://wiki.debian.org/Java/MoveToMain


== Links ==

* Status Java in Sarge:
http://lists.debian.org/debian-devel-announce/2005/06/msg00002.html

=== Sun und IBM liefern Java für Linux ===

* http://java.sun.com/
* http://java.sun.com/linux/
* http://www.ibm.com/java/
* http://www.blackdown.org/

* ausführlichere Installationsanleitung:
http://serios.net/content/debian/java/

=== Freie Java-VMs ===

* http://www.kaffe.org/
* http://gcc.gnu.org/java/
* http://www.pro-linux.de/berichte/gnu-classpath1.html

=== Java-Tutorials und Online-Bücher ===

* http://www.inventivio.com/help4j.html - Programm, das eine
Java-Hilfe anbietet (kostenlos, aber nicht frei)
* http://www.galileocomputing.de/openbook/javainsel4 - Buch "Java
ist auch eine Insel" (deutsch)
* http://www.softwareacademy.de/Java/001%20JAVA.htm - Buch "Java 2
Magnum" (deutsch)
* http://www.informit.de/books/java2_komp/data/start.htm - Buch
"Java 2 Kompendium" (deutsch)
* [http://java.sun.com/j2se/javadoc/ Javadoc] - Anleitung zum
Javadoc-Tool, um automatisch API-Dokumentationen zu erstellen

=== Web-Programme mit Java ===

* TomcatUnterDebian - Um Webservices in Java anbieten zu können,
empfiehlt sich die Installation von Tomcat.

Java-Template-Engines 

* http://java-source.net/open-source/template-engines - Übersicht
über Template-Engines
* [http://jakarta.apache.org/velocity/index.html Velocity] - 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
* FreeMarker - Erweiterte Möglichkeiten als Velocity, Doku etwas
unübersichtlich. Kann auch esoterische Probleme lösen, wobei dann
die Syntax etwas leidet
* [http://www.jamon.org/Features.html Jamon] - scheint sehr gut
Komponenten zu unterstützen, inspiriert von
[http://teatrove.sourceforge.net/ Mason]
* [http://teatrove.sourceforge.net/ Tea] - Template-Sprache von
Disney. gute Doku, aber letzte Version von 2002
* [http://jasperreports.sourceforge.net/index.html JasperReports] -
Reportgenerator (kein echte Template-Engine), macht einen sehr
guten Eindruck
* http://java-source.net/open-source/jsp-tag-libraries - Übersicht
über JSP Tag Libraries

Web-Frameworks

* [http://struts.apache.org Struts] - Das, was alle benutzen: Alt,
ausgereift, große Nutzerbasis, etwas angestaubt und wenig innovativ
* [http://jakarta.apache.org/turbine/index.html Turbine] -
Jakarta-Projekt, das behauptet, etwas moderner zu sein als Struts
* [http://jakarta.apache.org/tapestry/index.html Tapestry] - hat
einen interessanten objektorientierten (statt aktionsorientierten)
Ansatz
* [http://springframework.org Spring] - intelligente Idee, um
Objekte lose zu koppeln (aber IMHO seltsam umgesetzt), umfangreiche
Doku, alles in allem etwas aufgebläht
* [http://jodd.sourceforge.net/ Jodd] - Schlanker als Struts, sieht
nützlich aus, aber letzte Version von Oktober 2004
* [http://niggle.sourceforge.net/ Niggle] - Servlets-Framework, das
Freemarker und Velocity unterstützt, nichts Neues seit 2002
* [https://rife.dev.java.net/ Rife] - Soll mit dem berühmten
[http://www.rubyonrails.org/ Ruby on Rails] vergleichbar sein
* [http://grails.org/ GRails] - darf nicht Groovy on Rails heißen
;-) und schon die Version 0.1 sieht sehr verheißungsvoll aus
* Vergleiche von Web-Frameworks
** http://www.dynabean.de/download.html
** http://bdn.borland.com/article/borcon/files/6000/paper/6000.html
** http://www.oreilly.de/catalog/javaebp/chapter/ch03.html

Persistenz-Frameworks

* [http://hibernate.org Hibernate] - Persistenz-Framework (deutsche
Artikel z.B.
[http://www.torsten-horn.de/techdocs/java-hibernate.htm 1]
[http://www.javamagazin.de/itr/online_artikel/psecom,id,596,nodeid,11.html
2])
* [http://www.jenkov.com/mrpersister/introduction.tmpl Mr.
Persister]
* [https://glassfish.dev.java.net/javaee5/persistence/ J2EE 1.5]
enthält eine standardisierte Persistenz API, die
Glassfish-Implementierung steht unter einer Opensource-Lizenz (der
[http://www.opensource.org/licenses/cddl1.php CDDL]). Die API wird
auch von Hibernate unterstützt.