[英]correct way to use specific jvm to run java code on machine that has multiple jvms
我有一種情況,我在一台電腦上有多個 jvm。 現在我想使用特定的 jvm 運行 java 代碼,我該怎么做? 我確實做到了
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,它應該與特定的 jvm 一起工作? 我知道我在這里犯了一些小錯誤,有人可以指導嗎? 提前致謝
如果你運行,
C:\special\jre\bin java -version //desired vesrion
您需要設置一個 PATH 變量,
JAVA_SPECIAL_HOME = C:\special\jre\
並運行為,
%JAVA_SPECIAL_HOME%\bin\java
PATH是一個特殊變量,它指向 windows 可以找到可執行文件的文件夾(在這種情況下不一定是 java,而是 java)。 So if you have, say, java 10 in the path, open up cmd
and type java -version
- you'll see java 10. If you have many folders with "java.exe" - the one that appears first will be launched.
相反, JAVA_HOME與 Windows 無關——它是一個“約定”——許多其他程序(如 IDE)可以假設如果你有一個名為JAVA_HOME
的環境變量——它應該指向 JDK 安裝,就是這樣。
因此,如果您在同一台計算機上安裝了多個 JVM - 您必須明確指出您選擇的jdk/jre
的 bin/java.exe。 這可以通過使用或不使用 JAVA_HOME 來完成。
在我個人的 windows 系統上(我使用許多 Java 安裝)我通常定義以下內容(我假設所有 jdk-s 都安裝在文件夾“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
如果我想要一些特定的 java(例如 java 8)- 我可以做%JAVA_8_HOME%\bin\java -jar Myjar.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.