dos中的“java”命令如何找到要使用的jre

时间:2014-01-22 15:02:28

标签: java jvm

如果一台计算机安装了多个jdk和jre,我想知道,当我在dos中执行“java”命令时,“java”命令如何找到它应该使用的jre?我在某个地方看到了一个答案,他说那里有搜索jre的步骤:

  1. 搜索java.exe放置的当前目录以查找JRE目录

  2. 搜索父目录以查找JRE目录

  3. 根据注册表中的[HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java运行时环境]信息搜索JRE目录

  4. 是吗?

4 个答案:

答案 0 :(得分:3)

来自dos提示符的Java命令与任何其他dos命令一样处理。

这意味着它会搜索PATH环境变量和当前文件夹。

如果要运行特定版本,请使用要运行的Java版本的完整路径。

如果您想要始终运行特定版本,请相应地更改PATH环境变量。

Java命令将与特定的JRE / JDK捆绑在一起,并在执行时使用它。

答案 1 :(得分:0)

执行java命令时,它取决于PATH变量和当前目录。 Java附带了将要使用的捆绑JRE。如果要更改为不同的版本,则需要在PATH变量中更改它或使用java.exe的绝对路径执行它。

答案 2 :(得分:0)

当你在windows中的命令行中编写'java'时,它只会做一件事:

查看PATH中是否有类似的内容,并调用它找到的第一个内容。

也许您在询问JRE安装在Windows / System32中放置的java.exe存根(通常默认情况下在PATH中)。这不是一个完整的JRE,而是一个简单的ad-hoc程序,试图按照你在第3点中描述的那样做。

答案 3 :(得分:0)

正如Marko Topolnik所说,\ windows \ system32中有java.exe,我测试,我删除了jdk bin文件夹中的java.exe文件,当我执行“java”命令时,它也可以工作,所以它说当在DOS中执行“java”命令时,它实际执行外部JRE bin文件夹中的java.exe,而不是JDK bin java.exe。所以我认为PATH没有用于搜索JRE,是不是?