*Markus: (Linux) Welche Dateien wertet Java wann und wie aus?

Beitrag lesen

Hallo,

Ich möchte hier mal alle javabezogenen Dateien auflisten und würde gerne wissen, wie diese zusammenspielen, da mich eines wundert: Wie kann es sein, dass java-config -L folgendes ausgibt...

The following VMs are available for generation-2:
1)      Sun JDK 1.4.2.13 [sun-jdk-1.4]
*)      Sun JDK 1.5.0.08 [sun-jdk-1.5]
3)      Sun JRE 1.5.0.08 [sun-jre-bin-1.5]

...aber keine der folgenden Dateien irgendetwas mit Java 1.5 beinhaltet, zumal Java-1.5 tadellos funktioniert?

Zum einen sind das im Verzeichnis /etc/env.d/ folgende Dateien:

20java
------------------------------------------

Autogenerated by java-config

Command: --set-system-vm=sun-jdk-1.4

LDPATH=/opt/sun-jdk-1.4.2.13/jre/lib/i386/:/opt/sun-jdk-1.4.2.13/jre/lib/i386/native_threads/:/opt/sun-jdk-1.4.2.13/jre/lib/i386/classic/:/opt/sun-jdk-1.4.2.13/jre/lib/i386/server/
JDK_HOME=/opt/sun-jdk-1.4.2.13
JAVAC=/opt/sun-jdk-1.4.2.13/bin/javac
GENERATION=2
ROOTPATH=/opt/sun-jdk-1.4.2.13/bin:/opt/sun-jdk-1.4.2.13/jre/bin:/opt/sun-jdk-1.4.2.13/jre/javaws
VMHANDLE=sun-jdk-1.4

VERSION=Sun JDK 1.4.2.13

MANPATH=/opt/sun-jdk-1.4.2.13/man
PATH=/opt/sun-jdk-1.4.2.13/bin:/opt/sun-jdk-1.4.2.13/jre/bin:/opt/sun-jdk-1.4.2.13/jre/javaws
JAVA_HOME=/opt/sun-jdk-1.4.2.13

20java-config
-----------------------------------------
MANPATH=/etc/java-config/system-vm/man/
CONFIG_PROTECT_MASK="/etc/java-config/vms/ /etc/env.d/java/"

30java-finalclasspath
----------------------------------------
CLASSPATH=.:/opt/sun-java3d-bin/lib/ext/j3dcore.jar:/opt/sun-java3d-bin/lib/ext/j3dutils.jar:/opt/sun-java3d-bin/lib/ext/vecmath.jar

In diesem Verzeichnis /etc/env.d/ befindet sich noch ein weiteres Verzeichnis "java", das folgende Dateie beinhaltet:

20sun-jdk-1.4.2.13
----------------------------------------

Copyright 1999-2005 Gentoo Foundation

Distributed under the terms of the GNU General Public License v2

$Header: /var/cvsroot/gentoo-x86/dev-java/sun-jdk/files/sun-jdk-1.4.env,v 1.1 2006/06/25 20:06:24 nichoj Exp $

VERSION="Sun JDK 1.4.2.13"
JAVA_HOME=/opt/sun-jdk-1.4.2.13
JDK_HOME=/opt/sun-jdk-1.4.2.13
JAVAC=${JAVA_HOME}/bin/javac
PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${JAVA_HOME}/jre/javaws"
ROOTPATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${JAVA_HOME}/jre/javaws"
LDPATH="${JAVA_HOME}/jre/lib/i386/:${JAVA_HOME}/jre/lib/i386/native_threads/:${JAVA_HOME}/jre/lib/i386/classic/:${JAVA_HOME}/jre/lib/i386/server/"
MANPATH="/opt/sun-jdk-1.4.2.13/man"
GENERATION="2"
ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH"
VMHANDLE="sun-jdk-1.4"

Irgendwoher muss doch Java die Information bekommen, dass /opt/sun-jdk-1.5.0.08 das "richtige" Verzeichnis ist, aber woher tut es das?

java -version gibt ebenfalls folgendes aus:

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

Markus

--
http://www.apostrophitis.at
六 7東曲 人港ラ