Mein Entwicklungsteam wurde kürzlich in eine Remote-Entwicklungsumgebung versetzt, in der wir keinen vollständigen Zugriff auf die Server haben. Vor der Umstellung hatten wir eine JAR, die unter Java 1.7 x64 zusammen mit JRE 7 einwandfrei lief. Als wir auf den neuen Server umgestiegen sind, lief unsere JAR in Ordnung, aber dann "aktualisierte" einer der Serveradministratoren unser Java auf ein älteres Version und deinstallierte die von uns verwendete. Frag mich nicht warum, ich weiß es nicht. Ich habe Java 1.7 neu installiert und 1.6 zusammen mit den JREs deinstalliert.
Das folgende Problem tritt zur Laufzeit auf, es liegen keine Buildfehler vor:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
Ich habe dieselbe JAR auf meinem Laptop ohne Probleme ausgeführt. Sowohl der Server als auch mein Laptop haben JDK 1.7 und JRE 7 in den jeweiligen% HOME% -Variablen und im Systempfad. Ich habe sogar JRE 6 neu installiert und später mit dem gleichen Ergebnis in die PATH-Variablen der Systemumgebung eingefügt.
Ich habe auch die Registrierung wieder auf 1.6 geändert und es ergibt sich Folgendes, das ich nachgeschlagen habe und das anscheinend darauf zurückzuführen ist, dass mehrere Javas installiert sind (was zu meinem ursprünglichen Problem zurückführt):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Ich würde mich über jeden Einblick freuen, den Sie alle haben, da ich verschiedene Foren durchgesehen habe, aber nichts scheint genau mein Problem zu haben. Dies ist auch auf einem anderen Server geschehen, den wir ebenfalls verwenden. Vielen Dank!
Update: Kein Glück, die JAR auf 1.6 oder 1.7 neu zu kompilieren und mit dem JDK übereinzustimmen. Warum in aller Welt würde eine neuere Version von Java eine ältere kompilierte Version beschädigen?