105

许多基于 java 的应用程序需要设置 JAVA_HOME 环境变量。这个变量的目的是什么?

4

6 回答 6

22

目的是指出 Java 的安装位置。$JAVA_HOME/bin/java应该执行 Java 运行时。

于 2011-02-24T08:21:19.893 回答
22

环境变量是包含驱动器、路径或文件名等信息的字符串。

JAVA_HOME 环境变量指向您计算机上安装 Java 运行时环境 (JRE) 的目录。

于 2011-02-24T08:23:21.487 回答
8

当您运行 Java 程序时,您需要首先启动 JVM,通常这是通过运行可执行文件来完成的,在 Windows 上是java.exe。你可以通过很多方式得到它,例如给出一个完整的路径:

C:\somedir\bin\java.exe

或者可能将它放在您的 PATH 上。

您将某些包含类文件的类文件或 Jar 文件指定为命令行参数,这些类文件是您的程序。但这还不够,java.exe 本身还需要各种其他资源,尤其是所有 Java 库。通过设置环境变量 JAVA_HOME,您可以指定 JRE 以及所有这些运行时资源的位置。您应该确保您执行的特定 Java 与 JAVA_HOME 的设置相匹配。

您可能还需要JAVA_HOME\bin尽早设置路径,以便如果java.exe生成自身的副本(例如编译 JSP),它会选择正确的版本。

于 2011-02-24T09:06:13.107 回答
8

根据@dirai ,这里 JAVA_HOME不是由Java本身使用,而是由一些第三方工具使用,例如Apache Tomcat。然而,大多数应用程序都可以在没有设置此变量的情况下工作,但有些应用程序可能会出现意外行为。

于 2019-09-22T05:07:00.377 回答
5

JAVA_HOME是一个环境变量

它必须在不同的操作系统上设置。查看以下链接。

另请参阅此处了解更多信息。

于 2011-02-24T13:32:30.670 回答
4

JAVA_HOME允许您运行多个 java 安装中的任何一个。即使您/usr/lib/jvm/java-1.8.0/bin/java 首先在 PATH 中使用了 PATH,但作为环境设置的问题,能够说JAVA_HOME=/usr/lib/jvm/java-1.5.0并让运行程序的默认“java”使用另一个是很有用的。这允许程序员使用他们需要的 java,即使它没有安装在正常的系统位置,并测试或提供与该替代版本的反向兼容性。并且它不容易被另一个安装的程序在 PATH 中重置,例如 java 本身的主要版本更新。

于 2018-02-07T00:55:24.653 回答