Java Fehler could not find main class...
#1
geschrieben 23. Dezember 2006 - 05:10
ich habe einen lrelative simplen quelltext hier (hallo welt) der unter eclipse wunderbar läuft
(run->run as...).
will ich dagegen es von der comand-box ausrufen mit "java test" krieg ich folgende fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: test
hat jemand eine ahnung wie ich da raus komme? habe schon wie ein verrückter gegooglelt und es gibt auch oft welche mit dem fehler, aber alles schon übelst kompliziert und ich komm damit kaum klar. ich möcht eigentlich nur mein doofes projekt auch ausserhalb eclipse zum laufen kriegen^^ =)
danke!!
gruß
xdestroy
Anzeige
#2
geschrieben 23. Dezember 2006 - 10:16

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#4
geschrieben 23. Dezember 2006 - 12:40
Zitat
. ist standardmäßig im Classpath.
Ich tippe mal drauf, dass deine Klasse _nicht_ test heißt. Abgesehen davon, werden Klassennamen groß geschrieben.
#5
geschrieben 23. Dezember 2006 - 13:06
ich versteh das alles nich. wie kann das sein das ein programm in der entwicklungsumgebung wunderbar läuft und draußen dann wieder nicht. das ist doch komisch.
#6
geschrieben 23. Dezember 2006 - 14:14
Zitat
Du meinst hoffentlich "test.class"?
Zitat
Solltest du aber. Ohne Classpath kein korrektes Laden von Klassen, und ohne das läuft dein Programm nicht.
Zitat
Doch, tut es. Selbstverständlicherweise. Nur setzt es den auch entsprechend.
Und mir kommt gerade eine ganz ganz schlimme Befürchtung: Versuchst du etwas, aus einem anderen Ordner als dem, wo sich die Klasse "test" befindet, ebenjene aufrufen?
Zitat
Das ist nur eine Konvention im Sinne einer Empfehlung, keine Notwendigkeit.
Aber wozu eigentlich die Frickelei? Eclipse kann wunderbar in JAR-Archive verpacken, inklusive Manifest. Und auch manuell ist das kein Problem. Dann klappt's auch mit dem Classpath.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#7
geschrieben 23. Dezember 2006 - 14:21
#8
geschrieben 23. Dezember 2006 - 17:00
#9
geschrieben 23. Dezember 2006 - 17:23
Nochmal: Bist du überhaupt im richtigen Ordner auf dem richtigen Laufwerk? Heißt die Klasse wirklich test.class?

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#10
geschrieben 23. Dezember 2006 - 17:26
public class Test { public static void Main(String[] args) { System.out.println('foo');}}
2. Das als Test.java speichern
3. javac Test.java (dabei entsteht eine Datei mit dem Namen Test.class]
4. java Test (den Klassennamen, nicht die Classdatei!)
#12
geschrieben 23. Dezember 2006 - 19:16
Also so langsam glaube ich echt, daß du einfach zu !#{&%x^ warst, mal mit der Kommandozeile in den Ordner, wo sich die Klasse befindet, zu wechseln.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#13
geschrieben 24. Dezember 2006 - 01:21
java ist der größte müll den ich kenne - echt -.-
#14
geschrieben 24. Dezember 2006 - 02:52
Zitat
Nein garantiert nicht. Da lege ich deine Hand ins Feuer.
Höchstens Eclipse (netbeans, intellij *hust*).
Vielleicht sagst du uns einfach mal _genau_ was du bzw. eclipse gemacht ha(s)t und wir sagen dir was du/ihr falsch hast/habt.
#15
geschrieben 24. Dezember 2006 - 10:12
Zitat
Weil Java keine Gedanken lesen kann? Oder anderenfalls alle deine Platten nach allen Dateiene mit dem zutreffenden Kriterium durchsuchen muss? Eine Datenbank für Klassen gibt es zwar, aber die will man ja auch nicht immer mitkopieren und anpassen müssen, wenn man die Klassen auf einen anderen Rechner kopiert.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)