java.exe および javaw.exe の複数のインスタンス

java.exe および javaw.exe の複数のインスタンス

私はクアッドコアマシンで64ビットWindows 7を実行しています。java -versionコマンドウィンドウで実行すると、

java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

jar ファイルを実行しようとしても開かないという問題が発生していました。ドライブで を検索したjava.exeところ、そのコピーが多数見つかりました。ほとんどはプログラム フォルダのサブフォルダにあります。20K だけのものが 1 つ見つかりましたjava.exe。他のほとんどは 2000K の範囲ですが、サイズと日付が異なります。

これらを削除しても安全ですか? プログラムはjava.exe(またはjavaw.exe) のどのコピーを実行するかをどのように決定するのでしょうか? これらを安全にクリーンアップできますか?

答え1

全部保管しておいてください。

java.exeプログラム フォルダーのサブフォルダーにがある場合、そのフォルダーを持つプログラムjava.exeがそのバージョンを使用していると想定してもおそらく問題ありません。

コンピュータには、システム全体で特定の名前の実行可能ファイルが 1 つだけあるという制限はありません。これは、たとえば、同じ名前の Word 文書が 2 つある場合と同じです。これらは別のフォルダにある必要がありますが、競合することはありません。プログラムがそれを開こうとすると、どのフォルダを探すかがわかります。多くの場合、プログラマーは手動で探す場所を指定します (例: 「 を実行bin/java.exe」)。また、実行可能ファイルが見つかる可能性がある OS 提供のフォルダ リストを探すこともあります。どちらの場合も考えられます。プログラムに がバンドルされている場合はjava.exe、前者である可能性が非常に高くなります。

一般的に、プログラムに のようなものがバンドルされている場合java.exe、それが を使用する理由があると考えるのが妥当でしょう。その特定の java.exeプログラム ディレクトリからファイルを削除しないでください。非常に悪い結果になる可能性があります。

答え2

はい、必要な数だけ保持してください。1 つのボックスに複数の異なるバージョンの Java をインストールできます。さらに、ツールやアプリケーションには独自のバージョンが付属している場合があります。

さまざまなバージョンが保存されている場所 (どのディレクトリ) を確認して、そこに存在する理由を判断します。一部のバージョンは、 などの Java ディレクトリにインストールされる場合がありC:\"Program Files"\Java\jdk1.7.0_07\bin\、その他のバージョンは、特定のアプリケーションのディレクトリにインストールされている場合があります。

javaコマンドラインからコマンドを発行するときにどれが「アクティブ」であるかを確認するには、echo %path%コマンドプロンプトに入力し、リストされている Java ディレクトリをメモします。

(また、java.exe のバージョンを削除すると、ディスク領域を節約することが目的であれば、おそらく近くに (はるかに大きな) JAR ファイルのセットも削除する必要があることに注意してください。)

関連情報