1

Javaコードから2つの引数を渡してjarファイルを起動したいのですが、試したのは次のとおりです。

File jarFile = new File("path/to/jar/file");
if ((jarFile).exists()) {
                String[] command = new String[5];
                command[0] = "java.exe";
                command[1] = "-jar";
                command[2] = jarFile + "";
                command[3] = "arg1";
                command[4] = "arg2";
                Process p = Runtime.getRuntime().exec(command);
                p.waitFor();
} else {
    System.out.println("File is not available");
}

コードはjarを起動するのに最適ですが、ドライバーは32ビットのみであるため、32ビットJVMを使用してjarファイルを起動したいと思います.32ビットJVMを使用して
jarを起動するために、マシンには32ビットと64ビットの両方のJVMが含まれています次のようなハードコーディングされたjava.exeの場所があります

command[0] = "C:\\Program Files (x86)\\Java\\jdk1.7.0_25\\bin\\java.exe"

しかし、
1)エンドユーザーがJavaを他の場所にインストールした場合はどうなりますか?
2) java.exeを指定しただけで、パス環境変数に 64 ビット JVM の場所が含まれている場合はどうなりますか? 以下のコードを試しましたが、このメソッドを使用して引数を渡すことができません


String command = {"rundll32 url.dll,FileProtocolHandler ", jarFile  + "" , arg1, arg2}
Process p = Runtime
                   .getRuntime()
                   .exec(command);

引数を渡してjarファイルを起動する他の方法はありますか?

4

1 に答える 1