web-dev-qa-db-ja.com

特定のJREを使用してJARファイルを実行する

Windowsで特定のフォルダーにあるJREを使用してJARファイルを実行する方法はありますか? Eclipseは、ユーザーが指定したパスでJREを探す方法に似ています。一部のWindows実行可能コード(CまたはC++)またはバッチファイルのいずれかがジョブを実行します。ありがとう!

24
sol_var

JREディレクトリにはbin/Java.exeがあります。

あなたは単にそのJREからjarを実行することができます

<path_to_jre>/bin/Java.exe -jar Executable.jar

毎回コンソールを開く必要がない場合は、上記の行を.batファイルに入れてダブルクリックします。

51
FlightOfStairs

Jarfileと同じフォルダーにこのバッチファイルを作成します。

@echo off
set path=C:\Program Files (x86)\Java\bin\;%path%
Java -version
javaw -jar jaryouwanttorun.jar
pause
exit

コマンドから実行

_<path_to_jre>/bin/Java.exe -jar Executable.jar
_

(または、javaw.exeを使用して、JARの起動直後にコマンドプロンプトに戻ります)

または環境変数を設定する

多くの起動スクリプトは、JREおよびJDKの変数_JRE_HOME_および_Java_HOME_をそれぞれ尊重します。いくつかはスペースが好きではないので、短いパスの規則を使用してください(_C:\Progra~1\Java\jre1.8.0_171_)

64ビットシステムの場合:
_Progra~1_ = _Program Files_
_Progra~2_ = Program Files (x86)

または、ファイルの関連付けを設定します

ダブルクリックしてJARを起動します。残念ながら、GUI(コントロールパネル\コントロールパネルのすべてのアイテム\既定のプログラム\関連付けの設定)は非常にひどいため、レジストリで実行する必要があります。

これは、コントロールパネルの設定が無視されるときに、32/64ビットJREを選択するための私のお気に入りの方法です。

  1. _HKEY_CLASSES_ROOT\.jar_のデフォルト値がjarfileであることを確認します
  2. _HKEY_CLASSES_ROOT\jarfile\Shell\open\command_のデフォルト値がJREを指していることを確認します。

私の場合、64ビット環境の場合:

_"C:\Program Files\Java\jre1.8.0_171\bin\javaw.exe" -jar "%1" %*
_

引用符に注意してください:javawパスにはスペースが含まれています。 JARパスにはスペースを含めることができます。渡されたパラメーターはスペースで区切られます。

1
Hrobky

PowerShell構文は次のとおりです

& 'C:\Program Files\Java\jdk1.7.0_80\bin\Java.exe' -jar .\Executable.jar -Xmx256m

システムにインストールされている特定のJava.exeへのパスを使用します。

0
naXa

Java_HOMEのWindows環境変数を変更できます( here を参照)。実行するJREを指定します。正しいJREが実行時にロードされるため、それを行うプログラム的な方法はないと確信しています。

0
kentcdodds