it-swarm.com.ru

Запустите файл JAR, используя определенный JRE

Есть ли в Windows способ запустить файл JAR с помощью JRE, расположенного в определенной папке? Подобно тому, как Eclipse ищет JRE в некотором пути, который вы ему даете. Либо некоторый исполняемый код Windows (C или C++), либо командный файл выполнят эту работу. Спасибо!

22
sol_var

В каталоге JRE есть bin/Java.exe.

Вы можете запустить банку из этого JRE просто с

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

Если вы не хотите каждый раз открывать консоль, просто поместите указанную выше строку в файл .bat и дважды щелкните по ней.

46
FlightOfStairs

Создайте этот пакетный файл в той же папке, что и ваш jarfile:

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

Запустить из команды

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

(или используйте javaw.exe, чтобы вернуться к командной строке сразу после запуска JAR)

Или установите переменные среды

Многие стартовые скрипты учитывают переменные JRE_HOME и Java_HOME для JRE и JDK соответственно. Некоторым не нравятся пробелы, поэтому используйте соглашение о коротком пути (C:\Progra~1\Java\jre1.8.0_171)

В 64-битных системах:
Progra~1 = Program Files
Progra~2 = Program Files (x86)

Или установить ассоциации файлов

запустить JAR двойным щелчком мыши. К сожалению, графический интерфейс (Панель управления\Все элементы панели управления\Программы по умолчанию\Установить ассоциации) довольно паршивый, поэтому вам придется делать это в реестре.

Это мой любимый способ выбора 32/64-битного JRE, когда настройка панели управления игнорируется.

  1. Убедитесь, что значением по умолчанию в HKEY_CLASSES_ROOT\.jar является jarfile
  2. Убедитесь, что значение по умолчанию в HKEY_CLASSES_ROOT\jarfile\Shell\open\command указывает на вашу JRE.

В моем случае для 64bit env: 

"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

Вы можете изменить переменную среды Windows для Java_HOME (см. здесь ). Укажите это на JRE, с которым вы хотите работать. Я уверен, что нет никакого программного способа сделать это (потому что правильный JRE загружен во время выполнения).

0
kentcdodds