Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

24.09.2009, 14:10

Probleme mit Java-VMs

Hallo zusammen!

Ich schildere mal was mich momentan etwas verwirrt:
Ich habe im Netz eine Java-Anwendung gefunden, die ich gerne regelmäßig nutzen würde. Also das Ding runtergeladen. Zum Test habe ich aus dem Dateimanager heraus das Programm gestartet, und es funktioniert ohne Probleme. Also habe ich einen Menueintrag erstellt um es einfach ausführen zu können. Starte ich das Program allerdings nun damit, tut sich nichts.
Somit bin ich an die Fehlersuche gegangen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
% /usr/local/bin/Mainspring/run
Exception in thread "main" java.lang.NoClassDefFoundError: Mainspring
Caused by: java.lang.ClassNotFoundException: Mainspring
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Mainspring.  Program will exit.

Dies deutet für mich auf eine veraltete Java-Version hin, mit der ich das Program ausführen will. Selbiges sagte mir auch die FAQ zum Program. Also ging es weiter:

Quellcode

1
2
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/kde/3.4/bin:/usr/games/bin:/usr/lib/portage/bin:/opt/local/bin

Interessanterweise hatte ich aber vor einigen Tagen die alte blackdown-VM deinstalliert, weil ich sie nicht mehr brauchte. Momentan installiert sind:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
eix -I jdk
[U] dev-java/sun-jdk
 	Available versions:  
	(1.4)	1.4.2.19!f!s
	(1.5)	1.5.0.20!s
	(1.6)	1.6.0.15!s ~1.6.0.16!s
	{X alsa derby doc examples jce nsplugin odbc}
 	Installed versions:  1.4.2.19(1.4)!f!s(23:01:06 06.07.2009)(X alsa doc -examples -jce -nsplugin -odbc)
			  1.5.0.18(1.5)!s(00:52:11 08.04.2009)(X alsa doc -examples -jce -nsplugin -odbc)
			  1.6.0.15(1.6)!s(13:21:06 24.09.2009)(X alsa doc nsplugin -derby -examples -jce -odbc)
 	Homepage:        	http://java.sun.com/javase/6/
 	Description:     	Sun's Java SE Development Kit

[I] virtual/jdk
 	Available versions:  
	(1.4)	1.4.1 1.4.2
	(1.5)	1.5.0
	(1.6)	1.6.0
 	Installed versions:  1.5.0(1.5)(01:49:52 16.10.2006) 1.6.0(1.6)(20:50:24 13.07.2009)
 	Homepage:        	http://java.sun.com/
 	Description:     	Virtual for JDK

Found 2 matches.

Und genutzt wird:

Quellcode

1
2
3
4
5
6
% eselect java-vm list
Available Java Virtual Machines:
[1] blackdown-jre-1.4.2 
[2] sun-jdk-1.4 
[3] sun-jdk-1.5 
[4] sun-jdk-1.6 system-vm user-vm

Gleiches sagt mir auch das grafische Java-Controll-Panel und "java-config".
Der Eintrag in $PATH stammt aus "/etc/profile.env" bzw. "/etc/env.d/20java" und "/etc/env.d/20java-config":

Quellcode

1
2
3
4
5
6
7
8
% cat /etc/profile.env | grep jdk
export JAVAC='/opt/blackdown-jdk-1.4.2.03/bin/javac'
export JAVA_HOME='/opt/blackdown-jdk-1.4.2.03'
export JDK_HOME='/opt/blackdown-jdk-1.4.2.03'
export MANPATH='/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man:/opt/blackdown-jdk-1.4.2.03/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man'
export PATH='/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/kde/3.4/bin:/usr/games/bin'
export ROOTPATH='/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/kde/3.4/sbin:/usr/kde/3.4/bin'
export VMHANDLE='blackdown-jdk-1.4.2'


Ein "env-update" brachte keine Besserung und auch eine remerge von "sun-jdk:1.6" hatte keine Wirkung.
Nun meine Frage: Woher kommen die mittlerweile falschen Einträge zur blackdown-VM (da ja inzwischen deinstalliert) und wie kann ich diese korrigieren?

Ich bin für jeden Hinweis dankbar.
Grüße, H2

EDIT: Habe gerade noch festgestellt, dass neben dem unlängst deinstallierten blackdown-jdk auch blackdown-jre installiert war. Die Deinstallation diese jre hat aber keine Änderung gebracht, außer einen Eintrag weniger bei der Auswahl der java-vm mit eselect:

Quellcode

1
2
3
4
5
% eselect java-vm list
Available Java Virtual Machines:
  [1]   sun-jdk-1.4 
  [2]   sun-jdk-1.5 
  [3]   sun-jdk-1.6  system-vm user-vm

Die Umgebungsvariablen sind gleich geblieben.
"...klingt komisch, ist aber so!"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »H2« (24.09.2009, 14:24)


2

24.09.2009, 14:40

Nun meine Frage: Woher kommen die mittlerweile falschen Einträge zur blackdown-VM (da ja inzwischen deinstalliert) und wie kann ich diese korrigieren?
Puh, gute Frage...

Ich bin mir da nun nicht sicher, aber kommentiere die Java Einträge in "/etc/profile.env" doch zunächst mal aus.
Bei mir schaut es zZt so aus:

Quellcode

1
2
3
$ eselect java-vm list
Available Java Virtual Machines:
  [1]   sun-jdk-1.6  system-vm user-vm

Quellcode

1
$ cat /etc/profile.env | grep jdk
ist gar nichts..
Hm..

3

24.09.2009, 15:29

Ja, über das Auskommentieren der entsprechenden Einträge bin ich die Umgebungsvariablen eine Zeit los, allerdings würden diese ja beim nächsten "env-update" wieder überschrieben, weil die Einträge in "/etc/env.d/20java" und "/etc/env.d/20java-config" noch vorhanden sind. Kann ich diese Datein ohne Bedenken einfach entfernen? Ich möchte mir ungerne was zerschießen!

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
% cat /etc/env.d/20java
# Autogenerated by java-config
# Command: --set-system-vm=blackdown-jdk-1.4.2
LDPATH=/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/:/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/native_threads/:/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/classic/:/opt/blackdown-jdk-1.4.2.03/jre/lib/i386/server/
JDK_HOME=/opt/blackdown-jdk-1.4.2.03
JAVAC=/opt/blackdown-jdk-1.4.2.03/bin/javac
GENERATION=2
ROOTPATH=/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin
VMHANDLE=blackdown-jdk-1.4.2
# VERSION=Blackdown JDK 1.4.2.03
MANPATH=/opt/blackdown-jdk-1.4.2.03/man
PATH=/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin
JAVA_HOME=/opt/blackdown-jdk-1.4.2.03

Quellcode

1
2
3
% cat /etc/env.d/20java-config
MANPATH=/etc/java-config/system-vm/man/
CONFIG_PROTECT_MASK="/etc/env.d/java/"


Das Problem mit dem Programstart konnte ich übrigens gerade lösen. Es war ein Fehler im Startscript, was nix mit den Umgebungsvariablen zu tun hatte. Trotzdem stören mich natürlich noch die falschen Einträge in den Umgebungsvariablen!
Ich habe auch gerade mal den als Kommentar angegebene Befehl mit der neuen system-vm ausgeführt. Der lief zwar erfolgreich durch, brachte aber keine Änderung an den angesprochenen Datein.
"...klingt komisch, ist aber so!"