Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kann Stack-Trace nicht analysieren

3 views
Skip to first unread message

Hans-Joachim Elflein

unread,
Jan 28, 2004, 12:57:40 PM1/28/04
to
Hallo zusammen

beim Versuch ein Programm zu starten gibt es bei mir folgendes Fehlerbild:

Invocation of this Java Application has caused an
InvocationTargetException. This application will now exit. (LAX)

Stack Trace:
java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.Window.init(Window.java:224)
at java.awt.Window.<init>(Window.java:268)
at java.awt.Frame.<init>(Frame.java:398)
at java.awt.Frame.<init>(Frame.java:363)
at com.zerog.ia.installer.Main.c(Unknown Source)
at com.zerog.ia.installer.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.zerog.lax.LAX.launch(Unknown Source)
at com.zerog.lax.LAX.main(Unknown Source)


Als JAVA-Unkundiger sagt mir das nicht viel, aber ein Kollege meinte, ich
solle mal hier fragen, hier würden die Experten sitzen :)

Zum Hintergrund: Der Rechner selbst ist ein Debian-Linux Gerät (mit mehr
als ausreichend Speicherplatz), Angaben wie DISPLAY-Variable etcpp sind
gemacht. Andere Java-Applikationen laufen auf dem Gerät ohne Problem. Die
Herstellerfirma liefert Linux-Support leider nur für SuSE und RedHat, nicht
für Debian.

Daher die Frage:

Wo können wir ansetzen zu suchen? (Vielleicht fehlt ja nur irgendein
anderes Programm?)

Schon mal vielen Dank für eure Mühe

Viele Grüße, Hans

Mathias Kalb

unread,
Jan 28, 2004, 1:35:38 PM1/28/04
to
Hans-Joachim Elflein wrote:


> Stack Trace:
> java.lang.NoClassDefFoundError
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:140)
> at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)

>

> Als JAVA-Unkundiger sagt mir das nicht viel, aber ein Kollege meinte, ich
> solle mal hier fragen, hier würden die Experten sitzen :)

Hi,

in diesem Falll würde ich mich nicht als Experte bezeichnen, doch
ich vermute es liegt an dem Wert der System-Property
"java.awt.graphicsenv".
Sie sollte den Klassennamen der GraphicsEnvironment enthalten.
Unter Windows ist dies beispielsweise: sun.awt.Win32GraphicsEnvironment
Entweder ist die System-Property nicht richtig gesetzt, oder die Klasse
fehlt.
Den Wert kannst du z.B. mit folgendem kleinen Java-Programm ermitteln.

public class Test{
public static void main(String[] args){
System.err.println("java.awt.graphicsenv=" +
System.getProperty("java.awt.graphicsenv"));
}
}

Einen neuen Wert für diese Property kannst du beim Aufruf setzen:
java -Djava.awt.graphicsenv=<neuer klassenname> ...

Ciao
Mathias Kalb

Nico Seessle

unread,
Jan 28, 2004, 4:42:13 PM1/28/04
to
Hans-Joachim Elflein wrote:

> Zum Hintergrund: Der Rechner selbst ist ein Debian-Linux Gerät (mit mehr
> als ausreichend Speicherplatz),

Was für ein Java ist dort installiert, also was liefert die Ausgabe von
"java -version"?

Kafee (oder war das jetzt mir 2 "f"?) wird von Debian standardmässig
installiert und kann zwar generell irgendwie "Java", aber (bei mir
eigentlich nie) evtl. nicht ausreichend aktuell.

Zum Ausprobieren könntest du dir dann z.B. ein VM von Sun herunterladen,
in deinem Home-Verzeichnis "installieren" (wird nur ausgepackt), in
deinem Pfad an erster Stelle aufnehmen (export
PATH=~/j2sdk1.4.2_03/bin:$PATH) und mal schauen ob die Setup-Routine
dich dann lieber mag.

Eine Blackdown oder IBM-VM sollte - sofern eine solche zur Zeit
installiert ist - solche Probleme aber auch nicht haben.

Nico

Sven Köhler

unread,
Jan 28, 2004, 5:10:53 PM1/28/04
to
> Kafee (oder war das jetzt mir 2 "f"?)

http://www.kaffe.org/

he he, mit einem e und zwei f ;-)

Hans-Joachim Elflein

unread,
Jan 29, 2004, 1:54:28 AM1/29/04
to
Mathias Kalb wrote:

>> at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment


> in diesem Falll würde ich mich nicht als Experte bezeichnen, doch
> ich vermute es liegt an dem Wert der System-Property
> "java.awt.graphicsenv".

>[...]


> Den Wert kannst du z.B. mit folgendem kleinen Java-Programm ermitteln.

Glücklicherweise kann ich immerhin noch ein Java-Programm "kompilieren" :)

Isis:~$ java Test
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
Isis:~$

Aber wie ich bereits dem Nico Seesle schrieb vermute ich, daß das Programm
mit seinem "eigenen Java" daherkommt, und da komme ich leider nicht ran :(

Dennoch auch dir vielen Dank für die Mühe.

Gruß, Hans

Hans-Joachim Elflein

unread,
Jan 29, 2004, 1:49:47 AM1/29/04
to
Nico Seessle wrote:

> Was für ein Java ist dort installiert, also was liefert die Ausgabe von
> "java -version"?

Isis:~$ java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)
Isis:~$


> Zum Ausprobieren könntest du dir dann z.B. ein VM von Sun herunterladen,
> in deinem Home-Verzeichnis "installieren" (wird nur ausgepackt),

Hm, ich glaube nicht, daß es daran liegt, da das besagte Programm seine
"eigene Maschine" mitzubringen scheint.
(grmpfl, vielleicht hätte ich auch den Anfang der Ausgaben posten sollen
...)

Isis:~$ ./mksclient.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

Invocation of this Java Application has caused an
InvocationTargetException. This application will now exit. (LAX)

(den Rest hatte ich ja bereits verschickt)

Und da nach der Fehlermeldung sofort alle temporären Daten/Verzeichnisse
gelöscht werden, kann ich dort leider auch nicht nachschauen.
Ein "strace" (komplette Ausgabe hat 590 KByte) hat uns leider auch nicht
auf irgendeine heisse Spur gebracht :(

Dennoch vielen Dank für deine Mühe, Hans

Nico Seessle

unread,
Jan 29, 2004, 3:43:43 AM1/29/04
to
Hans-Joachim Elflein wrote:

> Hm, ich glaube nicht, daß es daran liegt, da das besagte Programm seine
> "eigene Maschine" mitzubringen scheint.
> (grmpfl, vielleicht hätte ich auch den Anfang der Ausgaben posten sollen
> ...)

Das ist natürlich blöd, weil es (zusammen mit der Eigenschaft "wir
löschen nach einem Abbruch sofort alles") das ganze natürlich ein wenig
komplizierter macht...

> Isis:~$ ./mksclient.bin

Das Dingens gibt es nich zufällig auch irgendwo als Trial zum Download?

Ein paar Ideen für Versuche (ohne zu wissen wie erfolgreich die jeweils
sein könnten):

"./mksclient.bin -i console" startet evtl. den Installer im
Konsolen-Modus (d.h. GUI-Krempel sollte hoffentlich keine Probleme machen)

Vielleicht funktioniert die vom Installer verwendete VM besser, wenn
libstdc++2.9-glibc2.1 installiert ist (glaube ich eigentlich bei dieser
Fehlermeldung nicht, aber wer weiss)

Vielleicht lässt sich der Installer mittels "./mksclient.bin
-Dlax.nl.current.vm=<path to vm>/bin/java" überreden die bereits
installierte VM zu verwenden?

Nico

Alexander Gran

unread,
Jan 29, 2004, 12:08:02 PM1/29/04
to
Hans-Joachim Elflein wrote:

> Isis:~$ ./mksclient.bin
> Preparing to install...
> Extracting the JRE from the installer archive...
> Unpacking the JRE...
> Extracting the installation resources from the installer archive...
> Configuring the installer for this system's environment...
>
> Launching installer...
>
> Invocation of this Java Application has caused an
> InvocationTargetException. This application will now exit. (LAX)
>
> (den Rest hatte ich ja bereits verschickt)
>
> Und da nach der Fehlermeldung sofort alle temporären Daten/Verzeichnisse
> gelöscht werden, kann ich dort leider auch nicht nachschauen.

Mach doch nach Configuring the installer for this system's environment...
ein Strg-Z und guck dann in die Sourcen, und was der da aufruft..

Alex

--
Some operating systems are called `user friendly',
Linux however is `expert friendly'.
Encrypted Mails welcome. Send spam to toZo...@gmx.net, please.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291

Ortwin Glück

unread,
Jan 29, 2004, 2:05:08 PM1/29/04
to

Hans-Joachim Elflein wrote:
> Isis:~$ ./mksclient.bin

Du kannst in dieses Shellscript mal reingucken. Dann musst du nur noch
rausfinden wo java aufgerufen wird. Vermutlich mit vielen Shellvariablen
:-) Lass dir mal diesen Aufruf per echo rausschreiben. Sieht dann
irgendwie so aus:

<path>/java <parameters> <main-class> <app parameters>

Vermutlich ist ein Parameter -Djava.awt.graphicsenv=... gesetzt. Den
kannst du dann entweder streichen oder durch
-Djava.awt.graphicsenv=sun.awt.X11GraphicsEnvironment ersetzen.

HTH

Odi

Hans-Joachim Elflein

unread,
Jan 30, 2004, 1:08:30 PM1/30/04
to
Hallo zusammen


Das Problem ist zwar nicht geklärt, jedoch gelöst!

Für den Fall, daß mal jemand ein ähnliches Problem hat, hier der "brute
force way" ...

Nachdem die hier abgegebenen Tips leider nicht gefruchtet hatten, habe ich
kurzerhand eine lauffähige Version von einem anderen Linux-Rechner (SuSE,
ein von MKS unterstützes System) auf besagtes Laptop kopiert und jedes
einzelne Programm "angestartet" in der Hoffnung, irgendeinen Hinweis zu
finden. Und siehe da: eines der Porgramme meldete eine nicht aufzufindende
"libstdc++-libc6.1-1.so.2", also habe ich einfach mal (mit dem Mut der
Verzweiflung) einen symbolic link von libstdc++-libc6.1-1.so.2 auf
/usr/lib/libstdc++-3-libc6.1-2-2.10.0.so angelegt; und was soll ich sagen?
Das Programm liess sich einwandfrei installieren :))

Ob es auch funktioniert, das kann ich aber nicht sagen, da ich erst am
Montag wieder Zugang zum dazugehörigen Server habe.

Alles in allem trotzdem vielen, vielen Dank für eure Bemühungen!

Schönes Wochenende, Hans

Nico Seessle

unread,
Jan 30, 2004, 2:21:45 PM1/30/04
to
Hans-Joachim Elflein wrote:

> Nachdem die hier abgegebenen Tips leider nicht gefruchtet hatten,

[...]


> finden. Und siehe da: eines der Porgramme meldete eine nicht aufzufindende
> "libstdc++-libc6.1-1.so.2",

Tja, da hättest du dir Arbeit sparen können (sowohl mit dem Link, als
auch mit dem auf diese Art rumprobieren):

cvs:~# apt-file search libstdc++-libc6.1-1*
libstdc++2.9-glibc2.1

Und mein Posting vom 29.1.:

> Vielleicht funktioniert die vom Installer verwendete VM besser, wenn
> libstdc++2.9-glibc2.1 installiert ist (glaube ich eigentlich bei
> dieser Fehlermeldung nicht, aber wer weiss)

Nico

0 new messages