Javaコードからプログラム的にjava.exeの絶対パスを見つける 質問する

Javaコードからプログラム的にjava.exeの絶対パスを見つける 質問する

ユーザーが起動する Java jar またはクラス ファイルがある場合 (Java パスが環境変数に設定されていると想定)、コード内から、このファイルが起動されている java.exe/javaw.exe の絶対パスをどのように把握できますか。

Ubuntu と同様に、次のコマンドを実行する% which javaとパスが表示されます。

ただし、Windows では、確認すると、System.getenv()古いバージョンや新しいバージョンなど、複数のパスが見つかる場合があります。コマンド ライン経由で実行した場合、java -versionパスは表示されません。

純粋な Java または Windows のコマンド ラインを使用して、javaw.exe の場所を見つける方法を教えてください。

ベストアンサー1

String javaHome = System.getProperty("java.home");

純粋な Java を通じて、または Windows 上で javaw.exe の場所を見つけるにはどうすればよいか教えてください。

例えば

import java.io.File;

class JavawLocation {

    public static void main(String[] args) {
        String javaHome = System.getProperty("java.home");
        File f = new File(javaHome);
        f = new File(f, "bin");
        f = new File(f, "javaw.exe");
        System.out.println(f + "    exists: " + f.exists());
    }
}

出力

C:\Program Files (x86)\Java\jdk1.6.0_29\jre\bin\javaw.exe    exists: true
Press any key to continue . . .

はい、JRE でも動作すると確信しています。

おすすめ記事