# Fehler beim Programmstart: java.lang.NoClassDefFound



## Philipp76 (2. Feb 2011)

Hallo zusammen!

Ich bin über Google auf dieses Forum gestoßen und hoffe, Ihr könnt mir mit folgender Frage helfen:

Ich möchte nicht programmieren, sondern nur ein neues Programm (Dialogys portable) unter Win XP starten, dass laut Beschreibung ohne Installation direkt von DVD bzw. Festplatte zu starten geht. Das benötigte Java 1.3 habe ich schon installiert, wenn ich es nun aber starten will, bricht mit folgender Fehlermeldung ab:

java.lang.NoClassDefFoundError: dialogys/chapeau/DialogysStarter 
Exception in thread "main"

Wie gesagt, kein selbstprogrammiertes Programm, ich habe auch keine Programmiererfahrung. Was kann/muss ich tun, um das Programm zum Laufen zu bringen?

Vielen Dank im voraus
Philipp


----------



## L-ectron-X (2. Feb 2011)

Schon die FAQ gelesen? http://www.java-forum.org/errors-exceptions/3583-haeufige-errors-exceptions-warnings.html

Sehr wahrscheinlich hast du keinen passenden Classpath.
Dieser sollte um das aktuelle Verzeichnis . (Punkt) ergänzt werden, damit der Interpreter auch in diesem Verzeichnis nach Klassen sucht.

Ich hoffe, du hast nicht wirklich die veraltete JRE 1.3 installiert, sondern die aktuelle 1.6!

Ansonsten ist es auch interessant, was du gemacht hast, um das Programm zu starten?
Da es sich hier um urheberrechtlich geschützte Software handelt, solltest du auch im Besitz eines Handbuchs, der Installationsanleitung bzw. einer Anleitung zum Start der Software sein.


----------



## Philipp76 (2. Feb 2011)

L-ectron-X hat gesagt.:


> Schon die FAQ gelesen? http://www.java-forum.org/errors-exceptions/3583-haeufige-errors-exceptions-warnings.html
> 
> Sehr wahrscheinlich hast du keinen passenden Classpath.
> Dieser sollte um das aktuelle Verzeichnis . (Punkt) ergänzt werden, damit der Interpreter auch in diesem Verzeichnis nach Klassen sucht.
> ...



Danke für die Antwort!

Was ich getan habe, um das Programm zu starten? Nun ja, ich habe im Windows Explorer die .exe doppelgeklickt... Der InstallShield-Assistent kommt dann mit genannter Fehlermeldung. 

Die FAQs sind für mich als Programmier-Laien leider ein Buch mit sieben Siegeln. 

Im Besitz einer Anleitung bin ich nicht, da online ersteigert und die DVD "nackt" kam... Da es sich um die portable-Version handelt, sollte das Programm halt beschreibungsgemäß ohne Installation direkt von DVD starten.


----------



## L-ectron-X (2. Feb 2011)

Aus der Fehlermeldung kann man entnehmen, dass eine JRE installiert ist und dass diese auch aufgerufen wird. Sie meldet schließlich den Fehler.

Schau mal in die Umgebungsvariablen, ob dort im CLASSPATH auch das aktuelle Verzeichnis (.) eingetragen ist.

Suche im System nach unten angehängtem Dialog. Dort sollte es unter Umgebungsvariablen eine Variable 
	
	
	
	





```
classpath
```
 geben. Die sollte beginnen mit 
	
	
	
	





```
.;
```


----------



## Philipp76 (3. Feb 2011)

Danke, habe ich gemacht, dort steht unter CLASSPATH:

.;C:\Programme\Java\jre6\lib\ext\QTJava.zip

Und nun...? 

Ich habe unter c:\Programme\Java übrigens noch andere Ordner: 

jre1.5.0_03
jre1.5.0_11
jre1.6.0_02
jre1.6.0_03
jre1.6.0_05
jre1.6.0_07

Außerdem unter c:\Programme\JavaSoft die 1.3.

Verweist der Eintrag evtl. auf eine falsche Version? Soll ich den verändern? Oder einen zweiten (wenn das möglich ist) eintragen? Muss das Ziel immer eine QTJava.zip sein? Die gibt's nämlich in den anderen Verzeichnissen nicht...


----------



## L-ectron-X (3. Feb 2011)

In diesem zip-File sind sämtliche Klassen der Standard-Java-API abgelegt, die von der JRE zur Ausführung von Java-Programmen benutzt werden.
Das Ziel muss glaube ich die rt.jar im lib-Verzeichnis der JRE-Installation sein.
Zum Beispiel also: 
	
	
	
	





```
C:\Programme\Java\jre6\lib\rt.jar
```

Du brauchst nicht mehrere JRE's installieren. Entferne zuerst alle auf deinem Rechner befindlichen JRE's mit der Deinstallationsfunktion.
Lade dir dann die aktuelle JRE bei Oracle herunter (das geht auch direkt bei uns über den das Forum-Menü "Nützliche Links").
Installiere dann die aktuelle JRE und versuche dein Programm erneut auszuführen.


----------



## Philipp76 (4. Feb 2011)

Danke nochmal! Ich habe jetzt alle Java-Versionen deinstalliert (Neustart), die 6.23 wieder installiert (Neustart) und versucht, das Programm zu starten. Er gibt jetzt die Fehlermeldung aus, dass er keine installierte Java Virtual Machine finden kann. Die gleiche Meldung hatte ich schon ganz am Anfang, bevor ich die 1.3 nachträglich installiert habe. Danach kam er ja dann wenigsten so weit, dass er die JVM gefunden hat, nur dass dann der NoClassDefFoundError kam.

Ich werde heute Nachmittag mal probieren, die 1.3 wieder zu installieren und dann den CLASSPATH auf den 1.3-Ordner umzuleiten, vielleicht bringt das was. Ich meld mich dann wieder.

Philipp


----------



## L-ectron-X (4. Feb 2011)

Bevor du wieder eine alte JRE installierst, solltest du vorher mal probieren, ob sich andere Java-Programme starten lassen.
Nehmen wir doch gleich mal eins, hier aus dem Forum, von  Benutzer JohnMcLaine programmiert und vorgestellt: GravoBlocks
Probiere das erst mal aus, dann können wir schon, wie ein Gastbenutzr meinte, eine defekte Software ausschließen.


----------



## Philipp76 (4. Feb 2011)

Hallo wieder!

Gravoblocks läuft bei mir. Habe es mit Eurer tollen Anleitung unter
http://www.java-forum.org/spezialthemen/18384-6-varianten-java-programme-starten-jar-bat-exe-cd.html
und der cmd.exe zum Starten gebracht. Leider klappt der Trick mit meiner .exe nicht, da kommt immer die Meldung "Could not create the Java virtual Machine."

Ich habe jetzt nochmal die 1.3 installiert, mit der läuft Gravoblocks nicht (wohl zu alt die 1.3), wenn ich versuche, meine .exe über die Konsole zu starten erscheint "Could not initialize the Java Virtual Machine. Program will exit.".

Grundsätzlich bleibt festzuhalten: Ohne die 1.3 (nur mit der 6.23 installiert) findet mein Programm die JVM gar nicht, mit installierter 1.3 findet er sie, bricht aber mit der bekannten Fehlermeldung (s. erster Post) ab. Auch das Umstellen des CLASSPATH Parameters auf den Pfad der 1.3...

.;C:\Programme\JavaSoft\JRE\1.3\lib\rt.jar

...brachte leider nichts.

Noch irgendwelche Ideen? Würde mich sehr freuen!
Philipp


----------



## L-ectron-X (4. Feb 2011)

Java-Programme werden in Jar-Dateien gespeichert. Suche mal nach Jar-Dateien auf der DVD.
Alle gefundenen Jar-Dateien müsstest du dann mal mit einem Packprogramm öffnen und untersuchen.
In wenigstens einer der Jar-Dateien könnte eine Datei namens _Manifest.mf_ in einem Verzeichnis _META-INF_ gespeichert sein, die du mit einem Texteditor öffnen kannst.
Drinnen suchst du nach einer Zeile, die mit _Main-Class:_ beginnt.
Das ist dann eine Jar-Datei, die sich mit einem Doppelklick starten lassen könnte. Versuche das mal.

Sollte sich die Jar-Datei nicht mit Doppelklick starten lassen, kannst du noch versuchen, die Datei auf der Konsole zu starten. Der Befehl: 
	
	
	
	





```
java -jar DeineJarDatei.jar
```
Den Befehl kannst du auch in deine Bat-Datei schreiben.

Was passiert eigentlich, wenn du in deine Kommandozeile folgendes eingibst?

```
java -version
```


----------



## Philipp76 (5. Feb 2011)

Guten Morgen!

Auf der DVD ist keine .jar-Datei, nur diverse .exe's, eine .bin, eine .md5 und drei .dat's, davon eine "dialogys_jvm.dat". Hilft Dir das weiter?

Wenn ich in der Konsole (im Stammverzeichnis) "java -version" eingebe, erscheint:

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

Ich habe weiterhin auch die 6.23 drauf, die entsprechende Meldung (java version "1.6.0_23") erscheint aber nur wenn ich direkt ins bin-Verzeichnis dieser Installation wechsele.


----------



## L-ectron-X (7. Feb 2011)

Die JRE startet auf jeden Fall, der Datentrager sollte laufen.

Bis jetzt bin ich von einer Originalsoftware von Renault ausgegangen.
Es könnte sein, dass du etwas von der DVD installieren musst. Eventuell werden dann noch ein paar Dinge angelegt/entpackt. Aber wenn das Ganze direkt von der DVD laufen soll...
Es handelt sich möglicherweise um die Datensatz-DVD, auf die eine vorher installierte Java-Software zugreift.


----------



## Philipp76 (7. Feb 2011)

Hallo L-ectron-X,

ich habe mir die Tage bei Amazon ein Buch bestellt, was das Innenleben und Auseinandernehmen meines Renaults auch sehr gut beschreibt und die DVD damit quasi überflüssig macht. Insofern habe ich beschlossen, keine Zeit und Energie mehr damit zu verbringen, die DVD zum Laufen zu bringen. Fehlt mir die Ausdauer für... Hat auch nur ein paar Euro gekostet, also kein zu schlimmes Lehrgeld... 

Ironischerweise habe ich gestern festgestellt, das das Problem am Auto sich aus irgendwelchen Gründen von allein behoben hat. Zumindest funktioniert jetzt wieder alles. Naja, wenn mal wieder was ist, das Buch kriege ich auf jeden Fall "zum Laufen" 

Vielen Dank nochmal für Deine schnelle und freundliche Hilfe! Ich kennzeichne den Thread hiermit als "erledigt".


----------

