1

我有一个非常基本的问题要问,为什么我们需要在 PATH 变量的末尾添加分号,为什么不在 JAVA_HOME 变量中添加分号?

我读了很多书和论坛:

  1. 在 PATH 变量中分隔不同的路径?或者告诉系统或 JRE 在那之后不要再看下去了。

  2. JAVA_HOME 变量是为了帮助 JRE 在未来的开发中寻找更多的文件和扩展,如 JDBC 驱动程序等。

4

5 回答 5

5

JAVA_HOME 用于指定单个目录。PATH 指定了几个目录,因此您使用分号分隔这些目录。

于 2011-04-11T14:39:47.510 回答
3

JAVA_HOME 是 JDK 或 JRE 安装的位置。许多与 Java 相关的库和文件都存储在这里。它是一个位置,而不是一组位置,因此无需使用“;” 到不同的位置。

PATH 和 CLASSPATH 变量指定多个位置,因此使用 ';' 来分隔条目。

注意 ';' 特定于 Windows。

于 2011-04-11T14:40:11.693 回答
1

PATH 是一个特定于操作系统的想法。它只是意味着,“当我输入命令时,也要检查这些路径”。默认情况下,您所在的当前目录通常位于搜索路径上。如果您考虑一下,您可以轻松想象如果您没有 PATH 的概念,使用命令行将是多么痛苦。

因此,给定一个 PATH(具有多个目录),您需要一种方法来分隔条目。每个操作系统都可以使用任何字符,但最流行的两个是分号(在 Windows 上)和冒号(在大多数系统 Unix 上,例如 Mac OS X)。

JAVA_HOME 只是指向您首选的 Java 安装所在的位置。一个值,因此不需要字符来分隔条目。

顺便说一句,您还会遇到 CLASSPATH,它是您的 Java 应用程序正在加载的所有库 (JAR) 和资源(例如属性文件)的路径。CLASSPATH 使用与 PATH 相同的格式/字符。

作为一个练习,尝试编写一些循环并打印出 System.getProperties() 和 System.getenv() 的值的代码。这是查看所有小配置元素的好方法。

于 2011-04-11T14:58:22.760 回答
0

分号是分隔符;它分隔路径中的多个项目。

JAVA_HOME 只指向一个地方(JDK/JRE 目录)

您的 PATH(或 CLASSPATH)可以包含许多位置。

话虽如此,将分号放在路径的末尾不会做任何事情并且会被忽略。

(注意这是 *nix 中的冒号而不是分号)

于 2011-04-11T14:41:10.370 回答
0

JAVA_HOME 是 JDK/JRE 的根目录。在我的系统上,JDK_HOME 是:C:\program files\java\jdk1.6.0_24

由于命令行工具(java、javac、jar 等)位于 bin 目录中,因此您将 %JAVA_HOME%\bin 放在 PATH 上,而不是 %JAVA_HOME% 本身...

于 2011-04-11T14:44:50.743 回答