Mon équipe de développement a récemment été contrainte de passer à un environnement de développement distant où nous n'avons pas un accès complet aux serveurs. Avant le changement, nous avions un JAR qui fonctionnait bien sur Java 1.7 x64 avec JRE 7. Lorsque nous sommes passés au nouveau serveur, notre JAR fonctionnait bien, mais l'un des administrateurs du serveur a "mis à jour" notre Java vers un ancien version et désinstallé celui que nous utilisions. Ne me demandez pas pourquoi, je ne sais pas. J'ai réinstallé Java 1.7 et désinstallé 1.6 avec les JRE.
Le problème suivant se produit au moment de l'exécution, il n'y a aucune erreur de construction:
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.
J'ai exécuté le même JAR sur mon ordinateur portable sans aucun problème. Le serveur et mon ordinateur portable ont tous deux JDK 1.7 et JRE 7 dans les variables% HOME% et PATH système respectifs. J'ai même réinstallé JRE 6 et l'ai placé plus tard dans les variables PATH de l'environnement système avec le même résultat.
J'ai également changé le registre pour regarder 1.6 et il en résulte ce qui suit, que j'ai recherché et il semble que plusieurs Javas soient installés (ce qui ramène à mon problème d'origine):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
J'apprécierais toute perspicacité que vous ayez tous car j'ai regardé sur divers forums mais rien ne semble avoir exactement mon problème. De plus, cela s'est produit sur un autre serveur que nous utilisons également. Merci!
Mise à jour: pas de chance de recompiler le JAR en 1.6 ou 1.7 et de faire correspondre le JDK. Aussi, pourquoi diable une version plus récente de Java casserait-elle une ancienne version compilée?