J'ai récemment vérifié ma Java. J'ai exécuté la commande Java -version
et j'ai découvert que j'utilisais Java version 1.7.0_09
. Mais quand j'ai essayé de vérifier C:\Program Files\Java\
répertoire, je ne trouve pas la même version. Je ne vois que ce qui suit:
Etc...
Mes programmes fonctionnent toujours, mais j'essaie simplement de tout compiler manuellement et de comprendre comment Java est traité par le système d'exploitation.
Une autre chose étrange est que j'ai essayé de vérifier les paramètres des variables d'environnement, et cela ne dit rien sur jdk1.7.0_09
.
Chemin:
Je veux juste que vous sachiez que cela est devenu automatiquement un jre.
Le répertoire complet est C:\Users\User02\AppData\LocalLow\Sun\Java\jre1.7.0_09
et le fichier nommé lzma.dll
.
Mais, j'ai un autre répertoire qui dit C:\Users\User02\AppData\LocalLow\Sun\Java\jdk1.7.0_07
. Les fichiers qu'il contient sont:
Il est possible d'avoir plusieurs JRE côte à côte sur un ordinateur.
Si JRE est correctement installé sur Windows, les informations sur chaque version sont stockées dans le registre. Le processus d'installation installe un Java.exe spécial dans le CHEMIN système (% SYSTEMROOT%\System32 ). Vous n'avez donc pas besoin de modifier votre PATH car ce Java.exe spécial trouvera le JRE actuel. A partir d'une ligne de commande, tapez Java -version pour afficher la version jre actuelle installée.
Avec la version 1.6, il est désormais possible de sélectionner une installation JRE différente de la dernière sans aucune modification du registre.
L'installation JRE est répertoriée dans le registre dans la clé
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Prenez cette classe de test simple
public class ShowVersion {
public static void main(String args[]) {
System.out.println(System.getProperty("Java.version"));
}
}
Sur un système, avec 1,6 et 1,5 installés. Si vous tapez
> Java ShowVersion
C'est probablement le 1.6 JRE qui sera utilisé car c'est le dernier installé.
Pour forcer le 1.5 JRE à la place, utilisez cette ligne de commande.
> Java -version:"1.5" ShowVersion
Si le bytecode est incompatible avec le JRE donné alors .. cela ne fonctionnera pas, bien sûr.
Vous pouvez toujours donner le chemin complet pour utiliser une installation spécifique. Le lancement de la JVM de cette façon n'utilise pas du tout le paramètre de registre.
>"C:\Program Files\Java\j2re1.4.1_02\bin\Java" -version
Java version "1.4.1_02"
source: Sélectionnez un JRE particulier dans la ligne de commande
L'ajout de ce qui suit résoudra votre problème:
set Java_HOME="your jdk path"
set PATH=%Java_HOME%\bin;%PATH%.
De plus, si cela ne fonctionne pas, cela signifie que vous avez défini le PATH
pour plusieurs versions Java, incluez uniquement la dernière et supprimez tout des variables PATH
.
En réponse à la question "réelle":
Une autre chose étrange est que j'ai essayé de vérifier les paramètres des variables d'environnement, et cela ne dit rien sur jdk1.7.0_09.
Ce qui s'est passé ici, c'est que vous avez installé jdk1.7.0_07, puis vous l'avez mis à niveau automatiquement. Lorsque cela se produit, il utilise toujours l'ancien nom de dossier que vous avez installé à l'origine.
Après avoir installé Java, je fais généralement une copie du répertoire JDK et le nomme avec le numéro de version. Ensuite, je peux appeler directement un certain Java comme donc:
@echo off
:: testjava.bat
set Java_HOME=C:\JDK1.x.xx
set PATH=%Java_HOME%\bin;%PATH%;.
Java -version
pause
Donc, ma recommandation est de définir votre variable système Java_HOME et votre variable PATH comme je le montre ci-dessus. Cela remplacerait tout sur votre système afin que votre JDK de votre choix soit la valeur par défaut par rapport au JRE.
Ce AppData
chemin dans votre commentaire n'est pas sur votre chemin (supposément, de toute façon), donc ce n'est probablement pas ce qu'il utilise. Malheureusement, il n'y a pas non plus de commande which
sous Windows.
Si vous modifiez votre chemin et déplacez le C:\Program Files\Java\bin
répertoire au tout début de la liste et il imprime toujours 1.7.0_09
, alors vous avez en quelque sorte JDK7u9 dans votre dossier JDK7u7. Sinon, accédez à tous les autres répertoires de votre chemin d'accès et ouvrez-les 1 par 1 jusqu'à ce que vous trouviez le fichier Java
approprié. Heureusement pour vous, votre chemin est beaucoup plus court que le mien.
Notez qu'en faisant:
> Java -version
Il peut également rechercher Java.bat
et d'autres extensions non -exe
, alors gardez un œil sur cela pendant que vous recherchez votre chemin. Essayez de courir:
> Java.exe -version
De cette façon, vous savez vous recherchez un fichier exe
.
Une dernière chose que vous pouvez essayer:
> "C:\Program Files\Java\jdk1.7.0_07\bin\Java" -version
Si cela renvoie 1.7.0_09
, puis quelque chose s'est produit qui a mis à jour votre JDK sur place, ce qui n'est pas censé se produire, AFAIK (mais je peux me tromper).