Integration von Java in Debian

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
inteluser1
Beiträge: 15
Registriert: 17.11.2008 13:18:18

Integration von Java in Debian

Beitrag von inteluser1 » 29.07.2011 11:04:12

Hallo Gemeinde,

ich wollte einmal nachfragen wie man eine andere Java-Version beispielhaft Oracle JRockit in Debian integriert, dass man es dann auch mit update-alternatives benutzen kann.

Analog sollte das dann ja auch für Apache Harmony etc. funktionieren.

Ich hab das versucht zu verstehen aber irgendwie hat das nicht geklappt.

Ich danke euch für eure Hilfe.

Benutzeravatar
shoening
Beiträge: 918
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Integration von Java in Debian

Beitrag von shoening » 29.07.2011 15:13:49

Hi,

wahrscheinlich musst Du Dir dann ein debian paket daraus bauen.

Und noch ein Hinweis: die java alternativen stellt man dann mit update-java-alternatives ein.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Integration von Java in Debian

Beitrag von rendegast » 29.07.2011 18:09:14

Und noch ein Hinweis: die java alternativen stellt man dann mit update-java-alternatives ein.
Das dann eine Datei *.jinfo des jeweiligen java einliest und an update-alternatives übergibt.
Damit das funktioniert, muß also eine passende *.jinfo erstellt werden.
Da debian-spezifisch ist es wohl nicht Teil des Quelltextes.

Bsp. /usr/lib/jvm/java-1.5.0-gcj-4.4/.java-gcj-4.4.jinfo :

Code: Alles auswählen

name=java-1.5.0-gcj-4.4
alias=java-gcj-4.4
priority=
section=main

jre java //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/java
jre keytool //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/keytool
jre orbd //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/orbd
jre rmid //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/rmid
jre rmiregistry //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/rmiregistry
jre tnameserv //usr/lib/jvm/java-1.5.0-gcj-4.4/jre/bin/tnameserv
jdk appletviewer //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/appletviewer
jdk jar //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/jar
jdk jarsigner //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/jarsigner
jdk javac //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/javac
jdk javadoc //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/javadoc
jdk javah //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/javah
jdk native2ascii //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/native2ascii
jdk rmic //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/rmic
jdk serialver //usr/lib/jvm/java-1.5.0-gcj-4.4/bin/serialver
noch dicker ist /usr/lib/jvm/.java-6-openjdk.jinfo:

Code: Alles auswählen

name=java-6-openjdk
alias=java-6-openjdk
priority=1061
section=main

hl java /usr/lib/jvm/java-6-openjdk/jre/bin/java
hl keytool /usr/lib/jvm/java-6-openjdk/jre/bin/keytool
hl pack200 /usr/lib/jvm/java-6-openjdk/jre/bin/pack200
hl rmid /usr/lib/jvm/java-6-openjdk/jre/bin/rmid
hl rmiregistry /usr/lib/jvm/java-6-openjdk/jre/bin/rmiregistry
hl unpack200 /usr/lib/jvm/java-6-openjdk/jre/bin/unpack200
hl orbd /usr/lib/jvm/java-6-openjdk/jre/bin/orbd
hl servertool /usr/lib/jvm/java-6-openjdk/jre/bin/servertool
hl tnameserv /usr/lib/jvm/java-6-openjdk/jre/bin/tnameserv
hl jexec /usr/lib/jvm/java-6-openjdk/jre/lib/jexec
jre javaws /usr/lib/jvm/java-6-openjdk/jre/bin/javaws
jre pluginappletviewer /usr/lib/jvm/java-6-openjdk/jre/bin/pluginappletviewer
jre policytool /usr/lib/jvm/java-6-openjdk/jre/bin/policytool
jdk appletviewer /usr/lib/jvm/java-6-openjdk/bin/appletviewer
jdk apt /usr/lib/jvm/java-6-openjdk/bin/apt
jdk extcheck /usr/lib/jvm/java-6-openjdk/bin/extcheck
jdk idlj /usr/lib/jvm/java-6-openjdk/bin/idlj
jdk jar /usr/lib/jvm/java-6-openjdk/bin/jar
jdk jarsigner /usr/lib/jvm/java-6-openjdk/bin/jarsigner
jdk javac /usr/lib/jvm/java-6-openjdk/bin/javac
jdk javadoc /usr/lib/jvm/java-6-openjdk/bin/javadoc
jdk javah /usr/lib/jvm/java-6-openjdk/bin/javah
jdk javap /usr/lib/jvm/java-6-openjdk/bin/javap
jdk jconsole /usr/lib/jvm/java-6-openjdk/bin/jconsole
jdk jdb /usr/lib/jvm/java-6-openjdk/bin/jdb
jdk jhat /usr/lib/jvm/java-6-openjdk/bin/jhat
jdk jinfo /usr/lib/jvm/java-6-openjdk/bin/jinfo
jdk jmap /usr/lib/jvm/java-6-openjdk/bin/jmap
jdk jps /usr/lib/jvm/java-6-openjdk/bin/jps
jdk jrunscript /usr/lib/jvm/java-6-openjdk/bin/jrunscript
jdk jsadebugd /usr/lib/jvm/java-6-openjdk/bin/jsadebugd
jdk jstack /usr/lib/jvm/java-6-openjdk/bin/jstack
jdk jstat /usr/lib/jvm/java-6-openjdk/bin/jstat
jdk jstatd /usr/lib/jvm/java-6-openjdk/bin/jstatd
jdk native2ascii /usr/lib/jvm/java-6-openjdk/bin/native2ascii
jdk rmic /usr/lib/jvm/java-6-openjdk/bin/rmic
jdk schemagen /usr/lib/jvm/java-6-openjdk/bin/schemagen
jdk serialver /usr/lib/jvm/java-6-openjdk/bin/serialver
jdk wsgen /usr/lib/jvm/java-6-openjdk/bin/wsgen
jdk wsimport /usr/lib/jvm/java-6-openjdk/bin/wsimport
jdk xjc /usr/lib/jvm/java-6-openjdk/bin/xjc
plugin mozilla-javaplugin.so /usr/lib/jvm/java-6-openjdk/jre/lib/i386/IcedTeaPlugin.so
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

inteluser1
Beiträge: 15
Registriert: 17.11.2008 13:18:18

Re: Integration von Java in Debian

Beitrag von inteluser1 » 02.08.2011 11:12:29

Hm...

soweit hatte ich das auch schon mal angelegt. Nur kam dann dein Fehler, dass die java alterantive, die ich einspielen möchte nicht in der Datenbank der Alternatives erscheint. Und bei dem Punkt hab ich dann vollends aufgegeben. Dummerweise, weiß ich nicht mehr genau die Fehlermeldung, ist schon ne Weile her.

"man update-java-alternatives" sagt dazu jedenfalls nur so viel
FILES
/usr/lib/jvm/.*.jinfo
A text file describing a jre/sdk installation. Consists of some
variables of the form <var>=<value> and a list of alternatives
of the form jre|jdk <name> <path>
Interessant ist dabei nur, dass z.B. bei openjdk noch "hl" und "plugin" dazukommen, die in der man nicht dokumentiert sind.

Also wenn jemand noch genaueres weiß, was über die .jinfo hinausgeht: ich bin ganz Ohr...

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Integration von Java in Debian

Beitrag von rendegast » 02.08.2011 12:45:30

Die .jinfo ist eine schematische Darstellung der update-alternatives-Behandlung durch die postinst der jeweiligen Pakete.
eine Aufbereitung für das update-alternatives-Frontend update-java-alternatives.

Du kannst in der java-Software (Oracle JRockit) die entsprechenden Pendants suchen und diese debian-Schemata damit befüllen.
Die postinst sind ja nicht zu schwer zu lesen und anzupassen:

Code: Alles auswählen

#!/bin/sh

set -e

priority=1061
basedir=/usr/lib/jvm/java-6-openjdk
basediralias=/usr/lib/jvm/java-6-openjdk
jdiralias=java-6-openjdk
mandir=/usr/lib/jvm/java-6-openjdk/jre/man
srcext=1.gz
dstext=1.gz
jre_tools='javaws pluginappletviewer policytool'

case "$1" in
configure)
    if [ -d /usr/share/doc/openjdk-6-jre ] && [ ! -h /usr/share/doc/openjdk-6-jre ]; then
	rm -rf /usr/share/doc/openjdk-6-jre
	ln -sf openjdk-6-jre-headless /usr/share/doc/openjdk-6-jre;
    fi

    for i in $jre_tools; do
	unset slave1 slave2 || true
        if [ -e $mandir/man1/$i.$srcext ]; then
	    slave1="--slave \
		/usr/share/man/man1/$i.$dstext \
                $i.$dstext \
                $mandir/man1/$i.$srcext"
	fi
	# disabled
        if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
	    slave2="--slave \
		/usr/share/man/ja/man1/$i.$dstext \
                ${i}_ja.$dstext \
                $mandir/ja/man1/$i.$srcext"
	fi
        update-alternatives \
            --install \
            /usr/bin/$i \
            $i \
            $basediralias/jre/bin/$i \
            $priority \
	    $slave1 $slave2
    done
...
jdk:

Code: Alles auswählen

jdk_tools='appletviewer apt extcheck idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc'
headless:

Code: Alles auswählen

jre_tools='java keytool pack200 rmid rmiregistry unpack200 orbd servertool tnameserv'
Die jeweiligen *_tools-Auflistungen kannst Du ja (auf gut Glück) mit weiteren Einträgen beschicken.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten