Подтвердить что ты не робот

Установка JVM через командную строку в Windows

Можно ли указать JVM для использования при вызове java jar jar_name.jar. На моей машине установлено две JVM. Я не могу изменить JAVA_HOME, так как он может сломать весь готовый код.

С уважением

Стивен

4b9b3361

Ответ 1

Да - просто явно укажите путь к java.exe. Например:

c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_03\bin\java.exe" -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_12\bin\java.exe" -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

Самый простой способ сделать это для запуска командной оболочки - это что-то вроде:

set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%

Например, здесь полный сеанс, показывающий мой JVM по умолчанию, затем переход к пути, затем новый:

c:\Users\Jon\Test>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

c:\Users\Jon\Test>set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%

c:\Users\Jon\Test>java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

Это не изменит программы, которые явно используют JAVA_HOME.

Обратите внимание, что если вы получаете неправильный каталог в пути, в том числе тот, который не существует, вы не получите никаких ошибок, он будет просто просто проигнорирован.

Ответ 2

Вы должны иметь возможность сделать это с помощью аргументов командной строки, предполагая, что эти виртуальные машины Sun установлены с использованием обычных механизмов Windows InstallShield с помощью JVM finder EXE в system32.

Введите java -help для параметров. В частности, смотрите:

-version:<value>
              require the specified version to run
-jre-restrict-search | -jre-no-restrict-search
              include/exclude user private JREs in the version search

Ответ 3

Если у вас есть 2 установки JVM. Разместите версию заранее. Linux: экспорт PATH =/usr/lib/jvm/java-8-oracle/bin: $PATH

Это устраняет двусмысленность.

Ответ 4

да Мне часто нужно установить 3 или более JVM. Например, я заметил, что иногда JRE немного отличается от JDK-версии JRE.

Мое решение для Windows для немного "упаковки" выглядит примерно так:

@echo off
setlocal
@rem  _________________________
@rem
@set  JAVA_HOME=b:\lang\java\jdk\v1.6\u45\x64\jre
@rem
@set  JAVA_EXE=%JAVA_HOME%\bin\java
@set  VER=test
@set  WRK=%~d0%~p0%VER%
@rem
@pushd %WRK%
cd 
@echo.
@echo  %JAVA_EXE%  -jar %WRK%\openmrs-standalone.jar
       %JAVA_EXE%  -jar %WRK%\openmrs-standalone.jar 
@rem
@rem  _________________________
popd
endlocal
@exit /b

Я думаю, что это просто. Главное, что setlocal и endlocal дают вашему приложению "персональную среду" для того, что когда-либо он делает, даже если есть другие программы для запуска.

Ответ 5

Попробуйте с Linux

sudo update-alternatives --config java