Il mio team di sviluppo è stato recentemente costretto a un ambiente di sviluppo remoto in cui non abbiamo pieno accesso ai server. Prima del cambiamento avevamo un JAR che funzionava bene su Java 1.7 x64 insieme a JRE 7. Quando siamo passati al nuovo server, il nostro JAR funzionava bene, ma poi uno degli amministratori del server ha "aggiornato" il nostro Java a un vecchio versione e disinstallato quello che stavamo utilizzando. Non chiedermi perché, non lo so. Ho reinstallato Java 1.7 e ho disinstallato 1.6 insieme ai JRE.
Il seguente problema si verifica in fase di esecuzione, non ci sono errori di compilazione:
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.
Ho eseguito lo stesso JAR sul mio laptop senza problemi. Sia il server che il mio laptop hanno JDK 1.7 e JRE 7 nelle rispettive variabili% HOME% e PATH di sistema. Ho persino reinstallato JRE 6 e l'ho inserito successivamente nelle variabili PATH dell'ambiente di sistema con lo stesso risultato.
Ho anche cambiato di nuovo il registro per guardare 1.6 e risulta quanto segue, che ho cercato e sembra essere dovuto all'installazione di più Javas (che riporta al mio problema originale):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Apprezzerei qualsiasi intuizione che avete tutti poiché ho esaminato vari forum ma niente sembra avere esattamente il mio problema. Inoltre, questo è accaduto anche su un altro server che stiamo utilizzando. Grazie!
Aggiornamento: nessuna fortuna con la ricompilazione del JAR a 1.6 o 1.7 e la corrispondenza del JDK. Inoltre, perché nel mondo una versione più recente di Java dovrebbe rompere una versione compilata più vecchia?