Version Java différente montrant sur la ligne de commande


J'ai récemment vérifié ma version 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 le répertoire C:\Program Files\Java\, je ne semble pas trouver la même version. Je ne vois que ce qui suit:

  • j2re1. 4
  • jdk1. 6. 0_32
  • jdk1. 7. 0_06
  • jdk1. 7. 0_07
  • re6
  • jre7

Et ainsi de suite...

Mes programmes s'exécutent toujours, mais j'essaie juste de tout compiler manuellement, et comprendre comment Java est traité par le système d'exploitation.

Une autre chose qui est bizarre, c'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 d'accès:

  • C:\Program Fichiers \ Fichiers communs \ Microsoft Shared \ Windows Live;
  • % SystemRoot% \ system32;
  • % SystemRoot%;
  • % SystemRoot% \ System32\Wbem;
  • % SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1. 0\;
  • C:\Program Les fichiers \ TortoiseSVN \ bin;
  • C:\Program Fichiers \ Windows Live \ Partagé;
  • C:\eclipse\plugins\com.Google.appengine.Eclipse.sdkbundle_1.6.5\appengine-java-sdk-1.6.5\bin;
  • C:\Program Fichiers \ Java \ jdk1. 7. 0_07 \ bin;C:\Program Fichiers \ QuickTime \ QTSystem\;
  • % ANT_HOME% \ bin

Je veux juste vous faire savoir que c'est devenu automatiquement un jre.

Le répertoire complet est C:\Users\User02\AppData\LocalLow\Sun\Java\jre1.7.0_09 et il a juste 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 à l'intérieur sont:

  • jdk1.7.0_07.msi
  • sj170070.cabine
  • ss170070.cabine
  • st170070.cabine
  • et sz170070.cabine
Author: Franz Noel, 2012-12-05

4 answers

Il est possible d'avoir plusieurs JRE côte à côte sur un ordinateur.

Si le JRE est correctement installé sur Windows, les informations sur chaque version sont stockées dans le registre. Le processus d'installation installe un java spécial.exe dans le CHEMIN du système (%SYSTEMROOT%\System32). Vous n'avez donc pas besoin de modifier votre CHEMIN car ce java spécial.exe trouvera le JRE actuel. À partir d'une ligne de commande, tapez java-version pour afficher la version jre actuelle installée.

Avec version 1.6, il est maintenant possible de sélectionner une installation JRE différente de la dernière sans aucune modification de registre.

L'installation JRE est répertoriée dans le registre dans la clé

HKEY_LOCAL_MACHINE \ LOGICIEL \ JavaSoft \ Environnement d'exécution Java

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 JRE 1.6 qui sera utilisé puisque c'est le dernier installer.

Pour forcer le JRE 1.5 à la place, utilisez cette ligne de commande.

> java -version:"1.5" ShowVersion

Si le bytecode est incompatible avec le JRE donné alors.. elle ne fonctionne pas, bien sûr.

Ref : note technique java 6

Vous pouvez toujours donner le chemin complet pour utiliser une installation spécifique. Lancer 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

 16
Author: RealHowTo, 2012-12-06 00:08:51

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 toutes les variables PATH.

 5
Author: Shashidhar, 2017-03-27 11:01:57

Que AppData chemin dans votre commentaire n'est pas sur votre chemin (soi-disant, 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 sur Windows.

Si vous modifiez votre chemin et déplacez le répertoire C:\Program Files\Java\bin au tout début de la liste et qu'il imprime toujours 1.7.0_09, alors vous avez JDK7u9 dans votre dossier JDK7u7. Sinon, accédez à tous les autres répertoires de votre chemin 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 que lorsque vous faites:

> 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 d'exécuter:

> java.exe -version

De cette façon, vous savez que vous cherchez 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, alors quelque chose s'est passé qui a mis à jour votre JDK en place, ce qui n'est pas censé se produire, AFAIK (mais je pourrais me tromper).

 2
Author: Brian, 2012-12-05 23:43:09

En réponse à la question "réelle":

Une autre chose qui est bizarre, c'est que j'ai essayé de vérifier l'environnement paramètres variables, et il 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 que vous l'avez automatiquement mis à niveau. 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 ceci:

@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 sur le JRE.

 2
Author: djangofan, 2012-12-05 23:55:27