簡體   English   中英

使用特定 jvm 在具有多個 jvm 的機器上運行 java 代碼的正確方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM