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

ein Haufen komischer Fehler

0 views
Skip to first unread message

Daniel Kaminsky

unread,
Jun 5, 2001, 7:33:44 AM6/5/01
to
Hi!

Nachdem ich ein ganz einfaches Programm unter Netbeans (Linux)
geschrieben habe, wollte ich das auch unter Windows ausführen.
Nun, da hat es dann überhaupt nicht geklappt, die Fehlermeldung konnte
ich nicht lesen (das Fenster hat sich zu schnell geschlossen). Also habe
ich es unter Linux ausgeführt und bekomme nach dem Aufruf "java Test"
folgende Fehler:

Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong
name: Test/Test)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:438)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:97)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:244)
at java.net.URLClassLoader.access$1(URLClassLoader.java:212)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:286)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:282)
at java.lang.ClassLoader.loadClass(ClassLoader.java:243)

Komisch daran finde ich nur, dass es unter Netbeans einwandfrei läuft.
Es werden zwar Warnungen wegen irgendwelchen Schriften ausgegeben, aber
es läuft ohne Probleme.

Ich hoffe nicht, dass meine Frage zu einfach ist. Aber unter
www.deja.com habe ich nur gefunden, was ich davor falsch gemacht habe
(die Klasse mit Endung gestartet).

Vielen Dank im Voraus.


Gruß Daniel

--
The worst day finswimming is better than
the best day working.

Ingo R. Homann

unread,
Jun 5, 2001, 7:37:05 AM6/5/01
to
Daniel Kaminsky wrote:
>
> Hi!


Hi!

Sieht aus, als hättest Du Probleme mit dem Verzeichnis. Bist Du in dem
richtigen Verzeichnis wirklich "drinnen"? Sonst 'denkt' die JVM nämlich,
es würde sich um ein packet handeln...

Hth, Ingo

Christian Wederhake

unread,
Jun 5, 2001, 7:53:55 AM6/5/01
to
"Daniel Kaminsky" <danielk...@web.de> schrieb

> Nachdem ich ein ganz einfaches Programm unter Netbeans (Linux)
> geschrieben habe, wollte ich das auch unter Windows ausführen.
> Nun, da hat es dann überhaupt nicht geklappt, die Fehlermeldung konnte
> ich nicht lesen (das Fenster hat sich zu schnell geschlossen). Also habe
> ich es unter Linux ausgeführt und bekomme nach dem Aufruf "java Test"
> folgende Fehler:
>
> Exception in thread "main" java.lang.NoClassDefFoundError:
> Test (wrong name: Test/Test)

Die Klasse Test gehoert also dem Package "Test" an...
Vermutlich sieht es irgendwo auf Deiner Platte ungefaehr so aus:

..../Test/Test.java
..../Test/Test.class

Du hast dann wohl in der Kommandozeile etwa folgendes eingegeben:

.../Test> java Test

Richtig waere gewesen:

.../> java Test.Test

Der package-Name gehoert num (voll ausgezeichneten) Klassennamen....

> Komisch daran finde ich nur, dass es unter Netbeans einwandfrei läuft.
> Es werden zwar Warnungen wegen irgendwelchen Schriften ausgegeben,
> aber es läuft ohne Probleme.

Das duerfte daran liegen, dass Netbeans weiss, dass die Klasse Test
im Package Test liegt, und somit einen korrekten Aufruf aus dem
korrekten Verzeichnis heraus erstellt....

> Ich hoffe nicht, dass meine Frage zu einfach ist. Aber unter
> www.deja.com habe ich nur gefunden, was ich davor falsch
> gemacht habe (die Klasse mit Endung gestartet).

Es ehrt Dich, selbst Nachforschungen angestellt zu haben....
Waeren nur alle so ... naja... fleissig....

BTW: Die JavaCodeConventions waeren fuer Dich IMO
mal einen Blick wert....
Package-Namen schreibt man naemlich eigentlich klein....

hth
Ciao
Chris


--
Christian Wederhake
Privat : caw...@gmx.net
Java-Fragen : ja...@cawgod.com


Daniel Kaminsky

unread,
Jun 5, 2001, 8:19:34 AM6/5/01
to
Hi!

Vielen Dank für eure Antworten.
Zur ersten:
Ja ich bin richtig im Verzeichnis drin. Ich habe auch alle Rechte.

Zur zweiten:
Das hat sich so schön einfach angehört, leider klappt es nicht.
Also, so sieht es in meinem Verzeichnis aus:

daniel@daniel:~/nbuser32/sampledir/Test > dir
insgesamt 20
-rwxr--r-- 1 daniel users 637 Jun 5 13:21 Test$1.class
-rwxr--r-- 1 daniel users 632 Jun 5 13:21 Test$2.class
-rwxr--r-- 1 daniel users 2436 Jun 5 13:21 Test.class
-rwxr--r-- 1 daniel users 2595 Jun 5 13:21 Test.form
-rwxr--r-- 1 daniel users 2317 Jun 5 13:21 Test.java

Jetzt habe ich "java Test.Test" gestartet und bekomme die Fehlermeldung,
die ich ganz am Anfang bekommen habe:
Exception in thread "main" java.lang.NoClassDefFoundError: Test/Test

Aber diesmal habe ich es nicht mit der Endung *.class gestartet...

Vielen Dank!

Gruß Daniel

P.s.:


> Es ehrt Dich, selbst Nachforschungen angestellt zu haben....

*g* Ich mag es auch nicht, wenn immer die gleichen Fragen gestellt
werden...deswegen suche ich lieber. Und einem wird eher geholfen...

Andreas Senft

unread,
Jun 5, 2001, 8:53:25 AM6/5/01
to
Daniel Kaminsky wrote:
>
> Zur zweiten:
> Das hat sich so schön einfach angehört, leider klappt es nicht.
> Also, so sieht es in meinem Verzeichnis aus:
>
> daniel@daniel:~/nbuser32/sampledir/Test > dir
> insgesamt 20
> -rwxr--r-- 1 daniel users 637 Jun 5 13:21 Test$1.class
> -rwxr--r-- 1 daniel users 632 Jun 5 13:21 Test$2.class
> -rwxr--r-- 1 daniel users 2436 Jun 5 13:21 Test.class
> -rwxr--r-- 1 daniel users 2595 Jun 5 13:21 Test.form
> -rwxr--r-- 1 daniel users 2317 Jun 5 13:21 Test.java
>
> Jetzt habe ich "java Test.Test" gestartet und bekomme die Fehlermeldung,
> die ich ganz am Anfang bekommen habe:
> Exception in thread "main" java.lang.NoClassDefFoundError: Test/Test
>
> Aber diesmal habe ich es nicht mit der Endung *.class gestartet...
>

Ich sehe zwei Möglichkeiten, was Du tun könntest, damit es geht:

1) Im Classpath muß irgendwo das Verzeichnis "~/nbuser32/sampledir"
stehen, oder
2) Du mußt java Test.Test vom Verzeichnis "sampledir" aus aufrufen (und
nicht direkt aus "sampledir/Test")

Grund:
Die Angabe Test.Test veranlaßt die VM die Klasse Test/Test.class zu
suchen. Da du aber bereits im Unterordner Test bist, kann die VM diesen
nicht finden (das ginge nur, wenn der übergeordnete Ordner im Classpath
wäre).

2) ist IMHO die bessere Alternative.

Gruß,
Andreas

Thomas Foerster

unread,
Jun 5, 2001, 9:03:42 AM6/5/01
to
Daniel Kaminsky <danielk...@web.de> writes:

> Hi!
>
> Vielen Dank für eure Antworten.
> Zur ersten:
> Ja ich bin richtig im Verzeichnis drin. Ich habe auch alle Rechte.
>
> Zur zweiten:
> Das hat sich so schön einfach angehört, leider klappt es nicht.
> Also, so sieht es in meinem Verzeichnis aus:
>
> daniel@daniel:~/nbuser32/sampledir/Test > dir
> insgesamt 20
> -rwxr--r-- 1 daniel users 637 Jun 5 13:21 Test$1.class
> -rwxr--r-- 1 daniel users 632 Jun 5 13:21 Test$2.class
> -rwxr--r-- 1 daniel users 2436 Jun 5 13:21 Test.class
> -rwxr--r-- 1 daniel users 2595 Jun 5 13:21 Test.form
> -rwxr--r-- 1 daniel users 2317 Jun 5 13:21 Test.java
>
> Jetzt habe ich "java Test.Test" gestartet und bekomme die Fehlermeldung,
> die ich ganz am Anfang bekommen habe:
> Exception in thread "main" java.lang.NoClassDefFoundError: Test/Test
>
> Aber diesmal habe ich es nicht mit der Endung *.class gestartet...

Versuch mal:

cd ..
java Test.Test

Du must im Basisverzeichnis der Package-Hierarchie sein.

Thomas

Daniel Kaminsky

unread,
Jun 5, 2001, 12:45:02 PM6/5/01
to
Hi!

Ich weiß nicht, was ich ohne Newsgroups machen würde...
Es funktioniert ohne Probleme. Mein erstes Programm mit Java läuft... ;)

Vielen Dank für eure Geduld!


Gruß Daniel

0 new messages