La Clé de registre '...' a la valeur '1.7", mais " 1.6 " est nécessaire. Java 1.7 est Installé et que le Registre est vers celui-ci
Mon équipe de développement a récemment été forcé sur une distance de l'environnement de développement où nous n'avons pas un accès complet aux serveurs. Avant le changement de plus nous avons eu un POT qui a été en cours d'exécution fine sur Java 1.7 x64 avec JRE 7. Quand nous nous sommes déplacés vers le nouveau serveur de notre BOCAL était en cours d'exécution ok, mais alors, l'un des admins du serveur "mise à jour" de notre Java à une version plus ancienne et la désinstallation de celui que nous étions à l'aide. Ne me demandez pas pourquoi, je ne sais pas. J'ai ré-installé Java 1.7 et désinstallé 1.6 avec le Jre.
Le problème suivant se produit au moment de l'exécution, il n'y a pas d'erreurs de génération:
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écuter le même BOCAL sur mon ordinateur portable sans aucun problème. À la fois le serveur et sur mon portable ont JDK 1.7 et JRE 7 respectives %HOME% et variables de CHEMIN d'accès système. J'ai même réinstallé JRE 6 et placé par la suite dans l'environnement du système, les variables de CHEMIN avec le même résultat.
J'ai aussi changé le registre en arrière pour regarder à 1,6 et les résultats dans la suite, qui je l'ai regardé et il semble être d'avoir plusieurs Javas installé (ce qui nous ramène à mon problème d'origine):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
J'apprécierais toute réflexion, vous avez tous comme je l'ai été à la recherche sur différents forums, mais rien ne semble avoir exactement mon problème. Aussi, cela a lieu sur un autre serveur que nous utilisons comme bien. Merci!
Mise à jour: Pas de chance avec recompiler le BOCAL soit 1.6 ou 1.7 et correspondant à la JDK. Aussi, pourquoi dans le monde serait une version plus récente de Java briser une ancienne version compilée?
Vous devez vous connecter pour publier un commentaire.
Ce qui se passe quand vous en quelque sorte confondu java lui-même. Vous tentez d'exécuter une version 6 de java VM où il a trouvé un JRE 7. Il peut montrer ce problème, même si vous tapez dans la ligne de commande juste
java
oujava -version
dans un problème de configuration de l'environnement. Le POT n'est pas le problème, sauf dans le cas très improbable où le code dans le BOCAL est à la recherche dans le Registre de Windows pour qu' (qui n'est probablement pas votre cas).Dans mon cas, j'ai eu l'
java.exe
,javaw.exe
etjavaws.exe
à partir de la version 6 de Java dans leWindows/System32
dossier (je ne sais pas comment il a obtenu d'être là). Le reste du JDK et JRE où le trouver dans le CHEMIN d'accès à l'intérieur deC:\Java\jdk_1.7.0\bin
. Oups!java.exe
,javaw.exe
, etjavaws.exe
est stocké sousWindows/SysWOW64
. Également pour quelque raison que quand j'ai installé le sdk 1.8 installéjava.exe
,javaw.exe
, etjavaws.exe
sousC:/ProgramData/Oracle/Java/javapath
. Je ne sais pas pourquoi, mais j'ai supprimé aussi bien etjava -version
fonctionne toujours.where java
retourne le suspect entrées (rien d'autre que l'endroit que vous avez effectivement installé le JRE). Si vous, comme moi, ont été incapables de trouver la java.exe par le biais de l'Explorateur, ouvrezcmd
en mode administrateur et le typedel PATH_TO_JAVA/java.exe
Juste eu la même erreur lors de l'installation de java 8 (jdk & jre) sur un système déjà en cours d'exécution Java 7.
Mon environnement a été mis en place correctement (Chemin & java_home correctement définies), mais le problème se pose de la façon pré-8 Java installateurs travaillé, qui est que ils ont utilisé pour copier les trois fichiers exécutables (java.exe, javaw.exe & javaws.exe) pour le répertoire système de Windows. Ceux-ci restent moins écrasée par une nouvelle pré-8 installation.
Cependant la Java 8 installer à la place crée des liens symboliques dans un nouveau répertoire, C:\ProgramData\Oracle\Java\javapath, renvoyant vers le JRE 8 emplacement.
Cela signifie que vous aurez fait exécuter les vieux 7 exe, mais l'utilisation de la nouvelle 8 Dll.
Donc, la solution est simplement de supprimer les 3 Java exe, comme ci-dessus, à partir du répertoire système de windows.
Si vous exécutez la version 32 bits de Java sur un Windows 64 bits, l'exe serait dans Windows\SysWOW64, à défaut, dans Windows\System32.
J'ai supprimé les fichiers java dans windows/system32 et j'ai aussi supprimé c:\ProgramData\Oracle\Java\javapath à partir de la variable de CHEMIN d'accès, car il y a 3 liens symboliques à java 1.8 fichiers.
J'avais JDK 1.7 dans l' %JAVA_HOME% variable et java1.7/bin dans le PATH.
PS1: Mon problème était entre Java 1.7 et Java 1.8.
PS2: je ne peux pas l'ajouter comme commentaire de Victor de répondre parce que je n'ai pas assez de points.
Dans le menu DÉMARRER, tapez "regedit" pour ouvrir l'éditeur de Registre
Allez dans "HKEY_LOCAL_MACHINE" sur le côté gauche de registre explorer l'arborescence de menu
Cliquez sur "LOGICIEL" dans "HKEY_LOCAL_MACHINE", les registres
Cliquez sur "JavaSoft" dans le "LOGICIEL", les registres
Cliquez sur "Java Runtime Environment" dans le "JavaSoft" liste des registres ici vous pouvez voir les différentes versions de java installée
Cliquez sur "Java Runtime Environment"- Sur la droite, vous obtiendrez de 4-5 lignes . Veuillez sélectionner "CurrentVersion" de droite et Cliquez( sélectionnez l'option modifier) Changer la version de "1.7"
Maintenant la magie a été complété
Je ne sais pas si quelqu'un est toujours en suivant ce fil, mais j'ai récemment eu ce problème lorsque j'ai essayé de lancer ActiveMQ 5.10 en tant que service Windows.
Je n'ai pas JAVA_HOME chemin ensemble.
J'avais Java 6 et Java 7 est installé, mais la valeur par défaut de la version v7. (c'est à dire si j'ai ouvert une fenêtre de commande et de types "java -version").
C'est là que l'idée a été - "java -version" retourné "Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, en mode mixte)" mais j'ai été avait installé le service Win32...
Il s'avère que si vous utilisez Win32 wrapper sur une machine 64 bits c'est en quelque sorte décide d'utiliser une autre version de Java...
Donc ma solution était de désinstaller la version 32 bits de l'emballage et installez la version 64 bits.
l'aversion sur ma machine; il suffit d'habitude, je suppose... Mais heureusement, j'ai résolu le problème finalement...
Pour mon Win7
Paradoxe a été en cours de java.exe et javaw.exe dans le dossier System32.
L'ouverture de ce dossier, je ne pouvais pas les voir, mais l'utilisation de la recherche dans le menu Démarrer je obtenir des liens vers ces fichiers, les ont enlevés. Prochaine searsh m'a donné des liens vers des fichiers à partir de JAVA_HOME
magie )
Changer de répertoire avec un bon
java.exe
c'est à dire aller à la version du JDKjava.exe
Exécuter le
java.exe
à partir de ce répertoire, il a la préséance sur registre et $PATH paramètres.J'ai résolu ce problème par la désinstallation de Java 1.8
Le pot a été compilé pour être
1.6
conforme. C'est pourquoi vous obtenez cette erreur. Deux résolutions:1) Utiliser La Version 1.6 De Java
OU
2) Recompiler le bocal pour être conforme à votre environnement
1.7
À l'aide de regedit, supprimer les entrées correspondant à java 7. Il va travailler.