NoClassDefFoundError - Warum?

Benzol

Erfahrenes Mitglied
Bin jetzt mittlerweile dahinter gekommen, warum mein in 1.5 kompiliertes Programm nicht unter einer 1.3 Laufzeitumgebung lauffähig ist.
Habe meine erstellten Klassen mit Retroweaver auf 1.3 umgestellt und siehe da - er versucht diesmal mein Programm zu starten, ohne mir zu sagen, das es Versionsunterschiede gibt.

Nur leider bricht er dann wieder mit der Fehlermeldung NoClassDefFoundError ab, und es scheint wieder etwas mit JDIC und dem darin enthaltenen Klassen zu tun zu haben.

Meine Frage ist daher, ist es möglich den Sourcecode von JDIV neu zu compilieren und ihn mit Retroweaver umzuwandeln und liegt das Problem woanders.
Ich kann leider kein JRE Update machen, da eine bereits vorhandene Software diese scheinbar zwingend benötig. Was für Möglichkeiten habe ich?
 
Besteht die Möglichkeit parallel eine 2. JVM zu installieren? Du könntest ja dann beim/vor dem Start das JAVA_HOME umbiegen...

Dadurch würde die bisherige SW weiter mit dem 1.3er laufen und neuere kannst Du mit was immer Dir paßt starten...

Gruß
 
Hast du dazu Quellen, die ich lesen kann? Im Prinzip wäre das keine schlechte Idee... würde das Problem zumindest am schnellsten Lösen.
 
Das ist halt recht abhängig vom verwendeten Betriebssystem und der Art, wie Du Deine Anwendung startest.

Unter Linux würd ich die JRE einfach 'irgendwo' entpacken (/usr/local/bin..) und ein Shell script zum Aufruf verwenden:
Code:
#!/bin/bash
export JAVA_HOME=/usr/local/bin/<wo/auch/immer/deine/JRE/steht
java -jar -cp ...

Windows wohl so ähnlich, mußt nur aufpassen, as das Installscript der JRE Dir dort nicht Das bereits vorhandene JAVA_HOME und den PATH vers'schönert'

Gruß
 
Umgebungsvariablen werden vom Vater zum Kindprocess weitergegeben. Nachträgliche Änderungen haben keinen Einfluss (der Process bekommt sie nicht mit)

Gruss
 
Zurück