2012-12-05 10 views
13

私は最近自分のJavaバージョンをチェックしました。私はコマンドjava -versionを実行し、私はjava version 1.7.0_09を使用していることを知りました。しかし、私がC:\Program Files\Java\ディレクトリでチェックしようとしたとき、私は同じバージョンを見つけることはできません。私は以下を参照してください。異なるJavaバージョンがコマンドラインに表示されます

  • j2re1.4を
  • jdk1.6.0_32
  • jdk1.7.0_06
  • jdk1.7.0_07
  • JRE6
  • jre7

その他...

My pプログラムはまだ実行されていますが、私はすべてを手動でコンパイルしようとしており、JavaがOSによってどのように扱われているかを理解しています。

もう一つ変わったことは、環境変数の設定を確認しようとしましたが、jdk1.7.0_09について何も言わないことです。

パス:

  • C:\ Program Files \ Commonファイル\ Microsoft共有\ Windows Liveの。
  • %SystemRoot%\ system32;
  • %SystemRoot%;
  • %SystemRoot%\ System32 \ Wbem;
  • %SYSTEMROOT%\ System32 \ WindowsPowerShell \ v1.0 \;
  • C:\ Program Files \ TortoiseSVN \ bin;
  • C:\ Program Files \ Windows Live \ Shared。
  • C:\ eclipse \ plugins \ com.google.appengine.eclipse.sdkbundle_1.6.5 \ appengine-java-sdk-1.6.5 \ bin;
  • C:¥Program Files¥Java¥jdk1.7.0_07¥bin; C:¥Program Files¥QuickTime¥QTSystem¥;

  • % ANT_HOME%以下の\ビンはちょうどあなたたちはそれが何らかの形で自動的にJREになったことを知らせたいです。

    完全なディレクトリはC:\Users\User02\AppData\LocalLow\Sun\Java\jre1.7.0_09です。ちょうどlzma.dllという名前のファイルがあります。

    しかし、C:\Users\User02\AppData\LocalLow\Sun\Java\jdk1.7.0_07という別のディレクトリがあります。その中のファイルは、以下のとおりです。

    • jdk1.7.0_07.msi
    • sj170070.cab
    • ss170070.cab
    • st170070.cab
    • とイッツ
  • +0

    それは私だけですか、またはそのリストに同じ名前の2つのディレクトリがありますか? – stevevls

    +1

    あなたのパスが明示的に指定されていない場合は、コンピュータ上の他のプログラムと同様に、パスが設定されているものを取得します。 **編集:**参照:http://www.computerhope.com/issues/ch000549.htm –

    +1

    ウィンドウ内の検索を使用して、 'java'のすべてのインスタンスを検索します。あなたのパスは、それらの場所の1つを指しています。これは 'java'と入力すれば得られます。 –

    答えて

    14

    sz170070.cabコンピュータ上に多数のJREを並置することが可能です。

    JREがWindowsに正しくインストールされている場合、各バージョンに関する情報はレジストリに格納されます。インストールプロセスでは、システムPATH(%SYSTEMROOT%\ System32)に特別なjava.exeをインストールします。この特殊なjava.exeは現在のJREを見つけるため、PATHを変更する必要はありません。コマンドラインからjava -versionと入力し、インストールされている現在のjreバージョンを表示します。

    リリース1.6では、レジストリを変更することなく、前回とは異なるJREインストールを選択できるようになりました。

    JREのインストールがオン

    HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoftの\ Javaランタイム環境

    この単純なテストクラスを取る

    public class ShowVersion { 
    public static void main(String args[]) { 
        System.out.println(System.getProperty("java.version")); 
    } 
    } 
    

    キー

    でレジストリに記載されています1.6と1.5がインストールされています。入力した場合

    > java ShowVersion 
    

    最後にインストールされているため、おそらく1.6 JREが使用されます。

    代わりに1.5 JREを強制するには、このコマンドラインを使用します。

    > java -version:"1.5" ShowVersion 
    

    バイトコードが指定されたJREと互換性がない場合は、もちろん動作しません。

    REF:technote java 6

    あなたが常に特定のインストールを使用するための完全なパスを与えることができます。この方法でJVMを起動しても、レジストリ設定はまったく使用されません。

    >"C:\Program Files\Java\j2re1.4.1_02\bin\java" -version 
    java version "1.4.1_02" 
    

    ソース:Select a particular JRE from the command line「実際の」という質問への答えで

    +0

    この機能は[JDK9](https://bugs.java.com/view_bug.do?bug_id=JDK-8050071)から削除されました。 – RealHowTo

    2

    奇妙ですもう一つは、私が環境 変数の設定を確認しようとした、であり、それはしていませんjdk1.7.0_09について何か言ってください。

    ここでは、jdk1.7.0_07をインストールして自動アップグレードしたことがあります。それが起こると、それはもともとインストールした古いフォルダ名を使用します。

    Javaをインストールした後は、通常、JDKディレクトリのコピーを作成し、バージョン番号を付けて名前を付けます。その後、私は直接そのような特定のJavaを呼び出すことができます。

    @echo off 
    :: testjava.bat 
    set JAVA_HOME=C:\JDK1.x.xx 
    set PATH=%JAVA_HOME%\bin;%PATH%;. 
    java -version 
    pause 
    

    だから、私のお勧めは、私は上記のようなあなたの示しJAVA_HOMEシステム変数とPATH変数を設定することです。これにより、システム上のすべてのものがオーバーライドされ、選択したJDKがJRE上のデフォルトになります。

    +0

    JDKでは自動更新が利用できますか? ([関連する質問](http://stackoverflow.com/questions/1829986/is-there-a-way-to-update-the-jdk-without-manually-downloading-the-new-version))私は思ったJREのみが自動更新を行いました。 – Brian

    +0

    それは本当です。その場合は、java JREがメジャーバージョンのjavaの後に指定されたディレクトリにProgram Filesにインストールされ、マイナーバージョンまたはビルド番号は含まれていない理由が説明されています。それは自動的にアップグレードするためです。したがって、この場合、彼のシステムは、デフォルトのjavaとして更新されたJRE7を指しており、そのJavaのバージョンはマイナーリビジョン09に自動アップグレードされています。 – djangofan

    2

    あなたのコメントのパスはあなたのパスにはありません(とにかく、とにかく)、それはおそらくそれが使用しているものではないでしょう。残念ながら、Windowsにはwhichコマンドもありません。

    C:\Program Files\Java\binディレクトリをリストの先頭に移動してもそれでも1.7.0_09が表示された場合は、JDK7u9がJDK7u7フォルダにあります。そうでない場合は、パス上の他のすべてのディレクトリを参照し、適切なjavaファイルが見つかるまで1行ずつ開きます。幸運なことに、あなたのパスはです。は私のものよりも短いです。やっていること

    注:

    > java -version 
    

    はまたjava.batや他の非exe拡張子を探し、あなたはあなたの道を探している間、このために目を光らせることがあります。実行してみましょう:あなたはを知っ

    > java.exe -version 
    

    そうすれば、あなたはexeファイルを探しています。

    最後に一つ、あなたが試すことができます:

    > "C:\Program Files\Java\jdk1.7.0_07\bin\java" -version 
    

    を、これは1.7.0_09を返した場合は、何かが、私の知る限りが起こることになっていないインプレースあなたのJDKを更新していることが起こった(しかし、私は間違っている可能性が) 。以下はあなたの問題を解決します追加

    2

    set JAVA_HOME="your jdk path" 
    set PATH=%JAVA_HOME%\bin;%PATH%. 
    

    さらにそれが動作しない場合はそれはあなたが複数のJavaバージョンのPATHを設定している意味は、一つだけ、最新かつPATH変数からすべてを削除します。

    関連する問題