使用特定jvm在具有多个jvm的机器上运行java代码的正确方法
我在一台pc上有多个jvm,现在我想使用一个特定的jvm运行java代码,我该怎么做? 是的使用特定jvm在具有多个jvm的机器上运行java代码的正确方法,java,environment-variables,Java,Environment Variables,我在一台pc上有多个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:\W
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)。因此,如果路径中有Java10,打开
cmd
并键入java-version
,您将看到Java10。
如果您有许多带有“java.exe”的文件夹,则会启动第一个出现的文件夹
相反,JAVA_HOME与Windows无关-这是一种“约定”-许多其他程序(如IDE)可以假设,如果您有一个名为JAVA_HOME
-的环境变量,它应该指向JDK安装,就是这样
因此,如果您在同一台计算机上安装了多个JVM,则必须显式地指向您选择的jdk/jre
的bin/java.exe。这可以通过使用JAVA_HOME或不使用JAVA_来完成
在我的个人windows系统上(我使用许多Java安装),我通常定义以下内容(我假设所有jdk-s都安装在文件夹“Java”中,它可以是程序文件或其他任何内容):
JAVA\u 8\u HOME=C:\JAVA\jdk8 JAVA\u 9\u HOME=C:\JAVA\jdk9 JAVA\u HOME=%JAVA\u 14\u HOME% 路径=…%JAVA\u HOME%\bin 默认情况下,我希望使用Java14作为示例,但我将来可以切换默认值。为此,我将编辑JAVA_HOME定义并将其指向另一个JAVA
现在我想用默认的java运行一些东西(在大多数情况下应该是可以的)-我根本不考虑这个问题-只需运行
java-jarmyjar.jar
如果我想要一些特定的java(例如java 8),我可以在命令行中键入“java”时执行
%java\u 8\u HOME%\bin\java-jar Myjar.jar
,它是使用PATH变量定位的,而不是java\u HOME。谢谢,我如何指向特定的JVm来运行我的代码?