# FAQ Tips > Hier Suchen und Finden, Links, Tutorials >  Java unter Linux

## hunter

*Vorbemerkungen:*

-> Was ist Java ?

Java ist eine Programmiersprache. Genau wie bei C oder Turbo Pascal gibt man einen Programmcode in einen Editor ein, der für Menschen verständlich ist. Ein Compiler setzt dies dann in einen Code um der wiederrum für den Computer verständlich ist. Bei Java ist es aber nicht ganz so. Pascal und C erstellen einen Code der direkt mit dem normalen Betriebsystem lauffähig ist. Abgesehen von einigen Bibliotheken braucht das Programm dann nichts weiter. Java macht das etwas anders. Es compiliert einen Code der vom Betriebsystem nicht ausgeführt werden kann, sondern nur von einem extra zu installierenen Java Run Environment (JRE). Dieses gibt es für fast alle Betriebsysteme: Linux, Windows, Mac, Solaris, Unix ...

Das bringt zwei Vorteile und einen Nachteil. Java Programmierer können beinahe vollständig vernachlässigen für welches Betriebssystem ihr Programm gedacht ist. Das schon fertige JRE erledigt dieses Problem. Desweiteren läuft dann ein Programm (in der Regel) auch auf jedem beliebigen Betriebsystem.  Der Nachteil ist natürlich das das JRE zur Laufzeit alles abarbeiten muss. Das macht ein Java Programm langsamer als z.B. ein C Programm. Dies spielt aber nur für Programme eine Rolle die überhaupt auf Geschwindigkeit angewiesen sind. Ein Java Mail Programm hat z.B. keine schnellen Vorgänge, so das da Java oder C keine Rolle spielt.

-> Programmierer oder reiner Anwender ?

Es gibt zwei verschiedene Versionen: JRE und SDK. Das JRE ist kleiner und ist nur dazu da um Java Programme auszuführen. Das SDK ist größer, weil es noch Bibliotheken, Objekte, Compiler usw. enthält. Das JRE ist aber auch im SDK enthalten.

Wer programmieren möchte braucht SDK, ansonsten reicht das JRE.

-> Java für Linux ?

Es gibt zwei Versionen von Java (von denen ich hier sprechen will !): Sun und Blackdown. Sun ist der Erfinder von Java. Es stellt SDK und JRE für alle Systeme her. Blackdown stellt nur eine optimierte Version für Linux her (und einige andere Unix Abkömmlinge). Der von einem Blackdown Java Compiler erzeugte Code läuft also unter Linux etwas besser als der von Sun.

Welchen ihr nehmt ist euch überlassen. Sun ist natürlich in der Entwicklung weiter als Blackdown. Dafür funktioniert Blackdown manchmal etwas besser als die Version von Sun (unter Linux).


*Downloads:*

*SUN:* http://java.sun.com/j2se/1.5.0/download.html

Ladet euch auf jeden Fall das .tar Shellscript für JRE oder SDK runter. Da habt ihr nachher mehr Kontrolle wo es landet. 1.5 ist das derzeit aktuellste. Möglicherweise gibts demnächst eine neue Version. Ersetzt dann einfach die 1.5 im Link durch die neue Versionsnummer, oder sucht euch den Download über http://java.sun.com/ .


*Blackdown:* http://www.blackdown.org/java-linux/mirrors.html

Sucht euch einen Mirror und geht in das aktuellste Verzeichnis. z.B. JDK 1.3.1. Von da aus dann weiter über i386 in das Verzeichnis mit der höchsten Versionsnummer z.B. FCS-02b. Dort ladet ihr euch den entsprechneden .bin File runter. j2re für JRE oder j2sdk für SDK.


*Installation:*

Als aller erstes müsst ihr sicher stellen das kaffe nicht installiert ist. Bei RPM Systemen macht ihr einfach: su -c 'rpm -e kaffe'


Anmerkung: Ich gebe hier nur Beispiele. Abhängig von der Version (Version, Sun, Blackdown, SDK oder JRE) können die angegebenen Namen etwas anders sein.

*SUN:*

Macht den runter geladenen File ausführbar z.B.: chmod a+x j2sdk-1_4_0_-linux-i586.bin
Führt jetzt das Binary aus z.B.: ./j2sdk-1_4_0_-linux-i586.bin

Er zeigt euch dann die Lizenz. Durch drücken von "Q" kommt ihr da raus. Sollte er fragen ob ihr damit einverstanden seid, dann gebt "Y" oder "YES" ein.

Danach sollte er das Binary entpacken und ihr habt ein Verzeichnis, das z.B. j2sdk1.4.0 heißt. Kopiert dieses als Root nach /usr/local/.

Sorgt dafür das die Rechte stimmen z.B.: su -c 'chmod 777 -R /usr/local/j2sdk1.4.0'

Jetzt ist Java installiert. Das System hat aber noch keinen Zugriff darauf. Ihr müsst zuerst noch die Pfade exportieren z.B.:

export JAVA_HOME=/usr/local/j2sdk1.4.0
export PATH=$PATH:/usr/local/j2sdk1.4.0/bin

Das gebt ihr einmal in der Konsole ein. Damit ihr das nicht immer wieder neu machen müsst, tragt ihr diese Zeilen in die /home/USER/.bash_profile oder /home/USER/.bashrc ein. Dann werden sie beim einloggen des jeweiligen USERs automatisch exportiert.

Ein java -version in einer Konsole sollte folgendes ergeben:

> java -version

java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

*Blackdown:*

Macht den runter geladenen File ausführbar z.B.: chmod a+x j2sdk-1.3.1-02b-FCS-linux-i386.bin
Führt jetzt das Binary aus z.B.: ./j2sdk-1.3.1-02b-FCS-linux-i386.bin

Er zeigt euch dann die Lizenz. Durch drücken von "Q" kommt ihr da raus. Sollte er fragen ob ihr damit einverstanden seid, dann gebt "Y" oder "YES" ein.

Danach sollte er das Binary entpacken und ihr habt ein Verzeichnis, das z.B. j2re1.3.1 heißt. Kopiert dieses als Root nach /usr/local/.

Sorgt dafür das die Rechte stimmen z.B.: su -c 'chmod 777 -R /usr/local/j2re1.3.1'

Jetzt ist Java installiert. Das System hat aber noch keinen Zugriff darauf. Ihr müsst zuerst noch die Pfade exportieren z.B.:

export JAVA_HOME=/usr/local/j2re1.3.1
export PATH=$PATH:/usr/local/j2re1.3.1/bin

Das gebt ihr einmal in der Konsole ein. Damit ihr das nicht immer wieder neu machen müsst, tragt ihr diese Zeilen in die /home/USER/.bash_profile oder /home/USER/.bashrc ein. Dann werden sie beim einloggen des jeweiligen USERs automatisch exportiert.

Ein java -version in einer Konsole sollte folgendes ergeben:

> java -version

java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.3.1-02b-FCS)Java HotSpot(TM) Client VM (build Blackdown-1.3.1_02b-FCS, mixed mode)

*Starten eines Java Programms*

Java Programme sind in der Regel alle schon compiliert. Meistens haben diese Programme die Endung: .jar . Diese startet man folgendermaßen:

java -jar PROGRAMM.jar


*Plugin*

Neben der Anwendung von Java Programmen unter einem Betriebsystem (Mail Client, Editoren etc.) gibt es auch noch die möglichkeit Programme unter einem Browser laufen zu lassen. Dies nennt sich Java Appletts. Viele Webseiten haben so etwas. Z.B. eine Navigation kann mit Java geschrieben sein. Damit der Browser das kann, muss erst noch das Plugin installiert werden.

In dieser Beschriebung beziehe ich mich hauptsächlich auf Netscape und Mozilla, da die das Plugin auf jeden Fall können. Dies geht im allgemeinen so:

Findet das Plugin Verzeichnis eures Browsers. Z.B. für Mozilla: /usr/lib/mozilla/plugins. Desweiteren braucht ihr noch den Pfad zu dem Java Plugin. Z.B. /usr/local/j2sdk1.4.0/jre/plugin/i386/ns4. Achtet darauf das es sich nicht nur um einen Link handelt. Es gibt zwar mehrere Verzeichnisse für mehrere Browser, aber in Wahrheit ist nur eines das Plugn und das andere nur Links darauf.

Erstellt nun einen Link (keine Kopie !) z.B.: su -c 'ln -s /usr/local/j2sdk1.4.0/jre/plugin/i386/ns4/javaplugin140.so /usr/lib/mozilla/plugins/'
Danach noch die Rechte richtig setzen z.B.: su -c 'chmod 777 /usr/lib/mozilla/plugins/*'

Nach einem Neustart des Browsers sollte euch Java zur Verfügung stehen.


*Schlussbemerkungen:*

Wenn ihr nun selbst programmieren wollt, braucht ihr noch einen Editor. Grundsätzlich geht natürlich jeder Editor. Es empfiehlt sich aber einen zu benutzen der den Java Code interpretieren kann und euch beim programmieren etwas unterstützt.

Meine Vorschläge:

NEdit -> http://nedit.org/
JEdit -> http://www.jedit.org/

Empfehlungen von fs111:

Jext -> http://www.jext.org/home.html
Netbeans -> http://www.netbeans.org/ (für Fortgeschrittene !)


Wenn ihr ein gutes Einsteigerbuch sucht, so kann ich dieses empfehlen:

Laura Lemay u. Rogers Cadenhead - Java 2 (in 21 Tagen)

Es beschreibt auch wie man Java unter Linux benutzt und erklärt auch sonst sehr gut.

----------


## fs111

Ein weiterer guter Editor findet sich unter www.jext.org, der hat sogar eine eigebaute Shell und für den etwas größeren Resourcenhunger www.netbeans.org, das ist allerdings schon etwas für den Fortgeschrittenen. Eine gute Einführung findet sich übrigens auch unter http://www.javabuch.de/. Das ist das Buch von Guido Krüger, welches auch bei Addison-Wesley erschienen ist. Eine sehr gute Quelle, falls die API (die übrigens der Hammer ist) mal nicht ausreicht, oder das Englisch des Lesers ;-).

fs111

----------


## SeeksTheMoon

Die Frage "Was ist Java" sollte man erweitern: "Was ist Java2?"
Mit Java2 bezeichnet man alle Java-Versionen ab Version 1.2, weil es in dieser Version starke Veränderungen und Verbesserungen gab, die Java zu dem machen, was es heute ist.
Wenn man Webanwendungen entwickelt, sollte man sich im Klaren darüber sein, dass in den meisten Browsern kein Java 2 sondern Java 1.1.x läuft, was einen bei der Programmentwicklung einschränkt.
Wenn man sich Java runterlädt, sollte man sich auch die Dokumentation runterladen. Die ist zwar fett, aber sie listet alle Klassen und Methoden sehr übersichtlich auf. Ein Feature, das ich bei C/C++ sehr vermisse.

Aber es gibt nicht nur das Java2 SDK von Sun. Sun bietet noch unzählige weitere Klassenkompendien an, die Java stark erweitern. So z.B. das J2EE, die Java2 Enterprise Edition. Dies ist ein Ergänzungspaket für das SDK, das unzählige Klassen beinhaltet. Mit der J2EE kann man z.B. Servlets (Serverseitige Javaprogramme) entwickeln, was mit dem Standard SDK nicht geht.
Bei der J2EE wird die passende API-Dokumentation schon mitgeliefert, nicht so wie beim SDK.
Wer die J2EE installiert, sollte seinen CLASSPATH noch um die Datei &lt j2sdkee1.3.1-install-dir&gt/lib/j2ee.jar erweitern, damit der Java-Compiler die zusätzlichen Klassen findet.
Ausserdem muss noch die Variabe J2EE_HOME auf das J2EE-Verzeichnis gesetzt werden.
Die ganzen "export Java-Variable" Geschichten sind übrigens in der /etc/profile (bzw. /etc/profile.local bei Suse) am besten aufgehoben, denn dann werden sie auch von Programmen gefunden, die selbstständig agieren und z.B. beim Booten den Classpath haben müssen.
Programme wie der Tomcat laufen nicht ohne die ganzen Variablen!

Ferner gibts noch das J2ME, mit dem man MiddleWare programmieren kann. Das sind Programme die auf tragbaren Geräten wie dem Palm laufen.
Wer auf der Sun-Seite stöbert, wird sicher noch mehr finden.

Zu den Entwicklungsumgebungen:
Sun liefert dem SDK direkt eine komplette IDE mit: "Forte für Java"
Forte ist ein sehr umfangreiches Tool, mit dem man richtig komfortabel Programmieren kann (wenn man sich erstmal eingearbeitet hat).
Forte gibt es direkt im Bundle mit dem SDK, aber das SDK gibt es auch separat (das dürften sich auch die meisten Leute runterladen).
Inzwischen hat Sun das Programm in "ONE Studio 4" umbenannt, wie ich gerade sehe.

Ein weiteres interessantes Tool ist der JBuilder von Borland. Man kann sich den JBuilder in der Personal Edition nach einer kurzen Registrierung kostenlos runterladen (hier muss nur die e-mail Adresse richtig sein, weil sie einem einen Freischalt-Key schicken).
Der JBuilder ist auch sehr komfortabel und umfangreich. Man kann mit ihm grafische Oberflächen "zusammenklicken" und der Debugger ist ganz brauchbar.
Ferner bietet er ab der Professional Version die Möglichkeit an, erzeugten Java-Code zu "versiegeln".
Vielen Leuten ist nicht bewusst, dass man Java-Programme in einem Wimpernschlag dekompilieren kann. Wer also richtige kommerzielle Programme schreibt, der sollte das bedenken (noch nichtmal Sun hat im SDK den Code versiegelt). Mit einem Programm wie jode ( http://jode.sourceforge.net ) kann man sich davon überzeugen...
Der JBuilder beinhaltet in den besseren Versionen z.B. auch den Jakarta Tomcat (http://jakarta.apache.org/tomcat/index.html), auf dem man seine Servlets testen kann.
Forte bietet diese Möglichkeiten sicher auch, aber ich habe mich jetzt mit dem JBuilder mehr beschäftigt.

Tja, was soll man sonst sagen. Ich hoffe, ich habe nichts vergessen.

Ach und übrigens: Java rulez!  (aber ganz gewaltig)  :Big Grin: 
Wer auf Sourceforge mal stöbert, der wird sehen, dass sich Java (5572 Projekte) mit C (7993 Projekte) und C++ (7175 Projekte) klar an der Spitze aller Softwareprojekte hält. ADA, Fortran, Eiffel und andere Sprachen kommen zusammen nicht mal auf 1000 Projekte; dann kommen schon die Scriptsprachen (z.B. PHP 4099 Projekte)

Oh! Einen hab ich noch:
Unter folgendem Link gibts das Buch "Java2 Kompendium" von Markt & Technik zum online lesen. (also schön wget anschmeißen und das Teil leechen)
http://www.informit.de/books/java2_komp/data/start.htm

----------


## hunter

*Einleitung:*

IDEs (Integrated Development Enviroment) sind Entwicklungsumgebungen. Sie erlauben es z.B. seinen Programmcode sofort zu compilieren und zu testen. Desweiteren kann man damit Projekte starten welche auch direkt eine grafische Oberfläche enthalten. Die Befehle dafür muss man nicht kennen, da man die Grafik mit einem Grafik Editor bearbeiten kann der den entsprechenden Programmcode sofort eingefügt. Für größere Projekte sollte man immer ein IDE verwenden da einfache Editoren dann zu unübersichtlich werden.


*Installation:*

Anmerkung: Ich setze vorraus das ihr Java SDK bereits installiert habt !!!

SUN hat solch ein IDE in Java programmiert. Es ist etwas gewöhnungsbedürftig jedoch sehr leistungsfähig und nützlich wenn man sich etwas damit auskennt.

http://wwws.sun.com/software/sundev/jde/buy/index.html

Ihr benötigt die "Sun ONE Studio 4 update 1, Community Edition". Diese steht zum kostenlosen Download bereit. Dazu müsst ihr euch dann (kostenlos) regestrieren. Dann diesen File runter laden:

Sun ONE Studio 4 update 1, Community Edition, Multi-language (ffj_ce_linux.bin, 42.96 MB)

Macht dann den File ausführbar: chmod +x ffj_ce_linux.bin

Führt ihn aus: ./ffj_ce_linux.bin

Von jetzt an läuft die Installation grafisch. Installiert das ganze in eurem Homeverzeichnis.

Schreibt jetzt noch ein kleines Script das euch die IDE nachher immer sofort starten kann:

#!/bin/sh
cd /s1s4-Verzeichnis/bin  (z.B. /home/USER/sun1studio/bin/)
sh runide.sh

Am besten unter: /usr/bin/s1s4 speichern

Ausführbar machen: chmod 755 /usr/bin/s1s4


*Start:*

Startet das Programm nun einmal (dauert einige Zeit): s1s4

Legt dann in eurem Home Verzeichniss das gewünschte Arbeitsverzeichnis an. Dort werden Daten, Samples usw. abgelegt.

Empfehlungen: Schaltet auf Fullscreen. Einzelfenster können schnell durcheinander geraten. Schaltet zudem noch ab das ihr die Tips am Anfang immer sehen wollt.


Nun solltet ihr euch mit der IDE vertraut machen. Ihr solltet aber auf jeden Fall auch mal in die Dokumentation schauen um alle notwendigen Funktionen benutzen zu können.


*Alternativen:*

Sun 1 Studio 4 ist nicht die einzige IDE die man unter Linux einsetzen kann. Daher will ich hier noch einige andere IDEs nennen:

Netbeans: http://www.netbeans.org/

Netbeans ist eine Open Source Portierung vom Sun 1 Studio 4 Vorgänger, Forte.


Eclipse: http://www.eclipse.org/

Eclipse ist eine schnellere Alternative die von vielen bevorzugt wird. Sie beherrscht neben Java auch noch C++ Programmierung.

----------


## hunter

Mittlerweile ist Sun One Studio 4 kostenpflichtig. Als Ersatz bietet SUN nun Netbeans zum Download. Dessen Installation ist mit der von SOS4 (nahezu) identisch und sollte keinerlei Probleme machen.

Netbeans ist aber nicht einfach nur ein Ersatz. Es bringt auch eine Menge Verbesserungen mit sich. So wird z.B. zur Laufzeit schon euer Code überprüft. So erspart ihr es euch vom Compiler sagen lassen zu müssen das ein ";" oder ein "}" fehlt.

----------


## comrad

Ich verwende Java sehr häufig beruflich und privat. Dabei muss ich es oft auf diversen Distributionen oder Linux-Plattformen installieren.

Da meine Vorgehensweise immer die gleiche ist, und wie ich finde sehr einfach, will ich sie euch mitteilen:

1. Ladet euch das JRE von Sun von java.sun.com  herunter. Achtet darauf, dass ihr nicht das JRE mit Netbeans oder das SDK herunterladet. Wenn ihr nur Java-Anwendungen ausführen wollt, reicht das JRE. Zur Java-Entwicklung braucht ihr den Java-Compiler, der in der SDK enthalten ist.

2. Ihr ladet ein .bin herunter. Wir nennen sie hier einmal java.bin. Macht es an der Konsole ausführbar mit:



```
chmod +x java.bin
./java.bin
```

Nun werdet ihr danach gefragt, die Lizenzbedinungen zu akzeptieren. Danach entpackt sich das Java-Archiv ins Verzeichnis z.B. j2re-1.4.2.

3. Verschiebt das j2re-1.4.2 nach /opt (achtet auf Schreibrechte, evtl müsst ihr Root sein):


```
mv j2re-1.4.2 /opt
```

4. Wir müssen Java im System bekannt machen. Dazu ist es nötig Root zu sein.



```
su (Root-Passwort eingeben)
ln -s /opt/j2re-1.4.2/bin/java /usr/local/bin/java
```

Falls ihr das SDK installiert habt, und den Java-Compiler nutzen wollt, braucht ihr noch:



```
ln -s /opt/j2re-1.4.2/bin/javac /usr/local/bin/javac
ln -s /opt/j2re-1.4.2/bin/jar /usr/local/bin/jar
```

Schon könnt ihr java benutzen.

comrad

----------

