правильный способ использования спецификаций c jvm для запуска кода java на компьютере с несколькими jvms - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть ситуация, когда у меня есть несколько jvms на ap c. Теперь я хочу запустить java код с указанием c jvm, как мне это сделать? Я сделал

set JAVA_HOME=C:\special\jre\bin\jvm.dll

, но, кажется, он не работает, как до или после того, как я делаю java -версию, я всегда получаю то же самое, в настоящее время установлен java например

    Microsoft Windows [Version 10.0.17763.1098]
    (c) 2018 Microsoft Corporation. All rights reserved.

    C:\Windows\System32>java -version
    java version "1.8.0_241"
    Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
    Java HotSpot(TM) Client VM (build 25.241-b07, mixed mode, sharing)

    C:\Windows\System32>

где, как я надеюсь, когда я сделаю набор java_home, он должен работать с этим указанием c jvm? Я знаю, что совершаю здесь какую-то тривиальную ошибку. Может, кто-нибудь из вас поможет? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

PATH - это специальная переменная, которая указывает на папку, где windows может найти исполняемый файл (не обязательно java, но java в данном случае). Поэтому, если у вас есть, скажем, java 10 в пути, откройте cmd и введите java -version - вы увидите java 10. Если у вас много папок с "java .exe" - тот, который появляется первым, будет запущен.

JAVA_HOME , напротив, не имеет ничего общего с Windows - это «соглашение» - многие другие программы (например, IDE) могут предполагать что если у вас есть переменная окружения с именем JAVA_HOME - она ​​должна указывать на установку JDK, вот и все.

Так что, если на одном компьютере установлено несколько JVM - вам придется явно указывать на bin / java .exe из jdk/jre на ваш выбор. Это можно сделать с помощью JAVA_HOME или без.

В моей личной системе windows (и я использую много установок Java) я обычно определяю следующее (я предполагаю, что все jdk-ы установлены в папке "Java", это могут быть Program Files или что угодно):


JAVA_8_HOME = C: \ Java \ jdk8

JAVA_9_HOME = C: \ Java \ jdk9

...

JAVA_HOME =% JAVA_14_HOME%

PATH = ...% JAVA_HOME% \ bin

По умолчанию я хотел бы использовать, например, java 14, но я смогу для переключения по умолчанию в будущем. Для этого я отредактирую определение JAVA_HOME и укажу на другое JAVA


Теперь я хочу запустить что-то со значением по умолчанию java (что в большинстве случаев должно быть в порядке) - Я вообще об этом не думаю - просто запустите java -jar Myjar.jar

Если я хочу указать что-то конкретное c java (например java 8) - я могу сделать %JAVA_8_HOME%\bin\java -jar Myjar.jar

0 голосов
/ 10 апреля 2020

Если вы запускаете как,

C:\special\jre\bin java -version //desired vesrion

Вам необходимо установить переменную PATH,

JAVA_SPECIAL_HOME = C:\special\jre\

И запустить как,

%JAVA_SPECIAL_HOME%\bin\java
...