This page (revision-37) was last changed on 23-May-2010 17:38 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
37 23-May-2010 17:38 9 KB ThomasBayen to previous mehrere Java-Versionen parallel nutzen
36 16-Jul-2008 17:56 4 KB PeterHormanns to previous | to last Tote Links gelöscht, ein paar Tippfehler...
35 16-Jul-2008 15:09 5 KB JensKapitza to previous | to last update, überarbeitet
34 24-Apr-2008 11:37 4 KB SusanneWenz to previous | to last
33 24-Apr-2008 11:33 4 KB SusanneWenz to previous | to last Java 6
32 24-Apr-2008 11:27 4 KB SusanneWenz to previous | to last
31 14-Mar-2008 12:38 4 KB PeterHormanns to previous | to last Aktuelle Java Pakete
30 19-Feb-2008 21:08 5 KB PeterHormanns to previous | to last Kategorie raus
29 12-Jan-2008 15:29 5 KB PeterHormanns to previous | to last
28 08-Jul-2007 15:34 5 KB ThomasBayen to previous | to last Link zum 64-Bit-Browserplugin
27 24-Mar-2007 12:16 4 KB ThomasBayen to previous | to last Herausgenommen, was nichts mit Debian zu tun hat
26 17-Mar-2007 21:29 9 KB ThomasBayen to previous | to last Link zum Swing Action Manager
25 16-Mar-2007 21:39 9 KB ThomasBayen to previous | to last Links zu Tests in Java
24 20-Feb-2007 12:37 9 KB ThomasBayen to previous | to last Links sortiert, KategorieJava eingefügt
23 14-Feb-2007 14:34 9 KB ThomasBayen to previous | to last Link zu Ant
22 12-Feb-2007 20:34 9 KB ThomasBayen to previous | to last Bemerkungen zu Swing/JUnit-Bibliotheken
21 08-Feb-2007 22:34 9 KB ThomasBayen to previous | to last ein paar Anmerkungen zu Unit-Testing unter Swing

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!!Java=>> <<Java >>unter Debian<< =>>

<<Allgemeine Informationen zu Java, Tips und Tricks der LUG Krefeld sowie interessante Links findet man auf der Seite [Java].

>>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 <<sahsa>> die Realität eine ganze Zeit lang 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...<< .>>

<<DieseDer>> <<ZeitenGrund,>> <<sinddass>> <<seitJava>> <<Etchinsbesondere>> <<(Debianunter>> <<4.0)Debian>> <<vorbei.nicht anständig>>
<<Warunterstützt>> <<eswurde,>> <<bislanglag>> <<so,wohl>> <<dassirgendwo>> <<manin>> <<Javaden>> <<immerLizenzen>> <<wiederder>> <<vonSprache
und
>> der <<Herstellerseitebenötigten>> <<beiProgramme>> <<Sunverborgen.>> <<herunterladenMehr>> <<musste,dazu>> <<kannweiter>> <<nununten.

Anfang
>> <<
2007 gab es eine DiskussionJavaStart
>>mit <<aptjemandem,>> <<der neu mit >>Java <<(JREanfangen>> <<oderauchwollte.>> <<JDK)Dort>> <<einfachstehen>> <<installiertfür>> <<werden.Neulinge>> <<evtl. auch einige interessante Tips, die hier noch nicht eingearbeitet wurden.>>

Seit Anfang 2007 gibt es offizielle Debian-Pakete mit der Sun-VM. Alternativ sind auch andere, richtig "freie", VMs in Debian enthalten. Diese beiden Wege sind zum heutigen Zeitpunkt die "Empfehlung der Redaktion".  --ThomasBayen

<<Für

==
>> <<DebianBlackdown>> <<EtchJava>> <<(aka==

In
>> <<4.0)der>> <<offiziellen Debian Distribution >>gibt es <<Javanur>> <<1.5.0freie
Implementierungen
>> <<imder>> <<ZweigSprache>> <<"non-free".Java,>> <<Javadie>> <<6aber>> <<kannviele>> <<manProgramme>> <<alsbisher
nicht
>> <<Backportausführen>> <<installieren.können. >>

<<*;:__Update__>> <<http://packages.debian.org/etch/sun-java5-jre
*
am
>> <<http://packages.debian.org/etch-backports/sun-java6-jre

Im
13.11.2006:\\SUN
>> <<Testing-Zweigwird>> <<vonJava>> <<Debianunter>> <<(künftigedie>> <<VersionGPL>> <<"Lenny")[stellen|http://www.heise.de/newsticker/meldung/80903/from/rss09].>> <<sindDamit>> <<Java5wird>> <<undder>> <<Java6Weg>> <<verfügbar:f&uuml;r Debian frei. (MarkusMonderkamp zitiert aus dem Heise-Ticker)>>

<<*Es>> <<http://packages.debian.org/lenny/sun-java5-jregibt zwei "Debian"-Wege doch zu einem>>
<<*"richtigen">> <<http://packages.debian.org/lenny/sun-java6-jreJava zu kommen. Wenn ein Java 1.3 oder 1.4 genügt, kann>>
<<man die Pakete des Blackdown Projektes benutzen. Dort wird das Java>>
<<--PeterHormannsvon Sun für verschiedene Linux Plattformen (z.B. auch PowerPC)>>
<<
:
portiert.
>> <<DankDazu>> <<Ubuntuträgt>> <<wurdenman>> <<neuein>> <<Lizenzendie>> <<gemacht/etc/apt/sources.list>> <<undzum>> <<seitBeispiel
ein:

>> <<Sun deb>> <<mithttp://ftp2.skynet.be/pub/ftp.blackdown.org/debian/>> <<"Javasarge>> <<wirdnon-free

Dann
>> <<OpenSource"ruft>> <<einenman>> <<neuenauf

>> <<Weg apt-get>> <<eingeschlagenupdate
>> <<hat apt-get>> <<istinstall>> <<esj2sdk1.4

oder
>> <<inauch

>> <<Zukunft apt-get>> <<bestimmtinstall>> <<weiterhinj2re1.4

wenn
>> <<einfacheinem>> <<zudie>> <<installierenJava-Laufzeitumgebung>> <<sein.genügt.>>

<<!!Das

==
>> <<Das >>Original von Sun <<(so==

Der
>> <<warzweite>> <<es)

Weg:
>>Man lädt sich das SDK für Linux als .bin-Datei von
<<[http://java.sun.com]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

<<!Java 6 mit java-package>>

<<Java==>> <<6Wirklich>> <<wirdFrei>> <<von java-package in Etch nicht unterstützt, was sich in der Fehlermeldung {{{No matching plugin was found.}}} zeigt. Das kann aber leicht angepasst werden:==>>

<<   cd /usr/share/java-package
  cp -a sun-j2sdk1.5 sun-j2sdk1.6

Editiere die erste Zeile in sun-j2sdk1.6/install

  suffix=j2sdk1.6-sun

Editiere sun-j2sdk.sh und füge folgendes zur i386 Section:

   "jdk-6u"[0-9]"-linux-i586.bin") # SUPPORTED
           j2se_version=1.6.0+update${archive_name:10:2}
           j2se_expected_min_size=130
           found=true
           ;;

Analog geht das Ganze natürlich auch für JRE.


!!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

<<!!64-Bit-Systeme>>

<<Grundsätzlich==>> <<funktioniertEchte>> <<JavaPakete>> <<auch==

Seit
>> <<aufAnfang>> <<64-Bit-Systemen2007>> <<sehr gut. Leider >>gibt es <<vonauch>> <<Sundirekt>> <<jedochDebian-Pakete>> <<kein richtiges Browser-Plugin, so das Applets und JavaWebStart gehandicapt sind. Hierzu gibt es Hinweise auf >>der <<SeiteSun-VM.>> <<LinuxMit64Bit.
:
Diese
>> <<eindürften>> <<32den>> <<Bitdurch>> <<Chroot''java-package''>> <<wirderstellten>> <<verwendetentsprechen,>> <<--JensKapitza



!!mehrere
sind
>> <<Java-Versionenaber>> <<parallelnatürlich>> <<nutzen

''(Dieser
einfacher
>> <<Text basiert auf EMail-Verkehr zwischen ThomasBayen und ThomasThiessen.)''

Ursprung des Problems ist, daß viele Debian-Pakete von Java-Programmen als Paketabhängigkeit nicht die Java-VM von Sun angeben, sondern z.B. mit GCJ vorkompiliert sind.

Grundsätzlich sollte es möglich sein, mehrere Java-Installationen parallel
>>zu <<betreiben.installieren.>> <<DasDiese>> <<jeweiligeNeuerung>> <<Programmdürfte>> <<hat dann zwei Stellen, über die eine Auswahl getroffen wird. Zum einen startest Du ja ein bestimmtes Executable, um Java zu starten und zum anderen sucht sich dieses dann seine Bibliotheken und sonstigen Krams >>im <<JavaZuge>> <<Installationsverzeichnis zusammen, das man mit >>der <<UmgebungsvariableFreigabe>> <<{{$JAVA_HOME}}von>> <<benennt.


!
Java
>> <<alternatives-Mechanismus

Die
unter
>> <<standardmäßigeiner>> <<benutztefreien>> <<InstallationLizenz>> <<ändersterfolgt>> <<Dusein.>> <<überAb>> <<das Tool "update-alternatives".

 update-alternatives --config java
 update-alternatives --config javac

Informationen, was eingestellt ist, gibts mit

 update-alternatives --display java
 update-alternatives --list javac

Lies mal die manpage. Aufschlussreich ist auch, mal

 ls -l /etc/alternatives/j* | less -S

anzuzeigen. Das ganze funktioniert so, daß ein Aufruf "{{java}}" auf
>>der <<KommandozeileDebian>> <<überEtch>> <<denDistribution>> <<normalengibt>> <<Suchpfades>> <<fürsomit>> <<ausführbareeinen>> <<Dateieneinfachen>> <<"{{/usr/bin/java}}"Weg,>> <<ausführt.auch>> <<Dieses ist dann aber ein Softlink auf "{{/etc/alternatives/java}}". Dieses wiederum ist dann ein Link auf >>die <<wirklichaktuelleren>> <<vonSun-Implementationen>> <<Dirzu>> <<ausgewähltenutzen.>> <<Java-Installation.-->> <<Diese Auswahl kannst Du automatisch vornehmen lassen oder mit update-alternatives beeinflussen. Die automatische Auswahl stellt die Sun-VM immer ganz nach hinten in die Prioritäten-Liste, weil sie nicht frei ist.ThomasBayen>>

<<! {{$JAVA_HOME}} setzen>>
<<
Das
==
>> <<zweite64-Bit-Systeme>> <<ist nun, das {{$JAVA_HOME}} anzugeben. Soviel ich weiss, muss man das normalerweise bei aktuellen Versionen nicht mehr machen, weil das "java"-Executable seinen eigenen Pfad erkennt und dann sein eigenes Installationsverzeichnis nimmt ''(kann da jemand was zu sagen, der es genauer weiss?)''. Hast Du das Gefühl, da stimmt was nicht, kannst Du aber immer mit==>>

<<  export JAVA_HOME /usr/lib/jvm/java-6-sun

diese Umgebungsvariable setzen.
>>Grundsätzlich <<kannfunktioniert>> <<manJava>> <<so >>auch <<denauf>> <<Java664-Bit-Systemen>> <<Compilersehr>> <<nehmen,gut.>> <<aberLeider>> <<die Java5 Bibliotheken oder solche Spielchen. Das ist aber nur selten sinnvoll.

Für speziell Deinen Fall sollte es eigentlich so sein, daß es Deinem ebay-Tool eigentlich egal sein sollte, mit welcher Java-Installation es läuft. Natürlich
>>gibt es <<Unterschiede, aber es ist recht unwahrscheinlich, daß es ein verbreitetes Jeva-Programm gibt, das mit der Java6se-VM >>von Sun <<nichtjedoch>> <<läuft.

Also
kein
>> <<installierstrichtiges>> <<DuBrowser-Plugin,>> <<zuerst java6 von Sun. Dann installierst Du Dein ebay-Tool. Dabei installiert Dir der Debian Paket-Manager unter Umständen allen möglcihen Quatsch dazu. Da das IMHO nicht wirklich nötig ist, weist das auf ein falsch konfiguriertes Paket hin. Vielleicht weist Du den Paket-Maintainer darauf hin, daß er die Paketabhängigkeiten besser ausdrücken sollte.

Da nun zwei VMs installiert sind, hat der Prioritätenmechanismus von update-alternatives die freie VM nach oben geholt. Das erkennst Du mit "{{java -version}}". Du nimmst nun update-alternatives und stellst das wieder zurück. (wieder testen mit "{{java -version}}".) Dann sollten eigentlich alle Programme glücklich laufen.

Sollte Dein ebay-Tool nun wirklich nicht laufen,
>>so <<benötigst Du dafür ein Startskript, >>das <<dieApplets>> <<Umgebungsvariable JAVA_HOME woandershin setzt >>und <<dannJavaWebStart>> <<eingehandicapt>> <<anderessind.>> <<ExecutableHierzu>> <<startet.

!
gibt
>> <<und was ist mit GCJ?!?

Als letzte Problemmöglichkeit könnte
>>es <<sein,Hinweise>> <<daßauf>> <<Dein Tool GCJ-kompiliert ist. Das ist ein Compiler, >>der <<ausSeite>> <<Java echte Linux-Executables macht. Ob die Dinger dann noch irgendwie in einer anderen VM laufen, weiss ich nicht. Vielleicht muss man da nur JAVA_HOME setzen, vielleicht ist das zu startende Executable auch erstmal ein Skript, in das man hineinsehen und schlau werden kann...?!? Vielleicht schreibt dazu mal jemand hier, der damit mehr Erfahrung hat.LinuxMit64Bit.>>

<<!
==
>> <<undLinks>> <<unter Eclipse?==>>

<<Wenn*>> <<Duausführlichere>> <<jetztInstallationsanleitung:>> <<mit Eclipse arbeitest, sind die Regeln übrigens wieder neu gemischt. Eclipse selber wird mit der Standard-VM gestartet. Mit welcher Du entwickelst, kannst Du dann in den Eclipse-Einstellungen sehen. Dort kannst Du einen Suchlauf starten, der alle VMs auf Deinem System findet. Dann kannst Du eine Standard-VM aussuchen und in jedem Projekt wieder eine eigene auswählen. Dabei hast Du auch die Wahl, nur bestimmte Kriterien anzugeben, so daß Du z.B. eine Java5-Umgebung bekommst, egal, von welchem Hersteller. http://serios.net/content/debian/java/>>
<<
-- ThomasBayen



!!Links
>>* Status Java in Sarge: http://lists.debian.org/debian-devel-announce/2005/06/msg00002.html
* http://ant.apache.org - Homepage des Java-Buildtools ApacheAnt <<(vergleichbar(vergelichbar>> mit ''make'')
<<* Allgemeine Informationen Tips und Tricks auch auf der [Java] Seite der LUG Krefeld>>
<<*===>> <<AnfangSun>> <<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.

!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/>>
<<!Freie
===
>> <<Freie >>Java-VMs<< ===>>
<<
* http://www.kaffe.org/
* http://gcc.gnu.org/java/
* http://www.pro-linux.de/berichte/gnu-classpath1.html

<<
[{Tag Debian Java}]