我有一个非常基本的问题要问,为什么我们需要在 PATH 变量的末尾添加分号,为什么不在 JAVA_HOME 变量中添加分号?
我读了很多书和论坛:
在 PATH 变量中分隔不同的路径?或者告诉系统或 JRE 在那之后不要再看下去了。
JAVA_HOME 变量是为了帮助 JRE 在未来的开发中寻找更多的文件和扩展,如 JDBC 驱动程序等。
JAVA_HOME 用于指定单个目录。PATH 指定了几个目录,因此您使用分号分隔这些目录。
JAVA_HOME 是 JDK 或 JRE 安装的位置。许多与 Java 相关的库和文件都存储在这里。它是一个位置,而不是一组位置,因此无需使用“;” 到不同的位置。
PATH 和 CLASSPATH 变量指定多个位置,因此使用 ';' 来分隔条目。
注意 ';' 特定于 Windows。
PATH 是一个特定于操作系统的想法。它只是意味着,“当我输入命令时,也要检查这些路径”。默认情况下,您所在的当前目录通常位于搜索路径上。如果您考虑一下,您可以轻松想象如果您没有 PATH 的概念,使用命令行将是多么痛苦。
因此,给定一个 PATH(具有多个目录),您需要一种方法来分隔条目。每个操作系统都可以使用任何字符,但最流行的两个是分号(在 Windows 上)和冒号(在大多数系统 Unix 上,例如 Mac OS X)。
JAVA_HOME 只是指向您首选的 Java 安装所在的位置。一个值,因此不需要字符来分隔条目。
顺便说一句,您还会遇到 CLASSPATH,它是您的 Java 应用程序正在加载的所有库 (JAR) 和资源(例如属性文件)的路径。CLASSPATH 使用与 PATH 相同的格式/字符。
作为一个练习,尝试编写一些循环并打印出 System.getProperties() 和 System.getenv() 的值的代码。这是查看所有小配置元素的好方法。
分号是分隔符;它分隔路径中的多个项目。
JAVA_HOME 只指向一个地方(JDK/JRE 目录)
您的 PATH(或 CLASSPATH)可以包含许多位置。
话虽如此,将分号放在路径的末尾不会做任何事情并且会被忽略。
(注意这是 *nix 中的冒号而不是分号)
JAVA_HOME 是 JDK/JRE 的根目录。在我的系统上,JDK_HOME 是:C:\program files\java\jdk1.6.0_24
由于命令行工具(java、javac、jar 等)位于 bin 目录中,因此您将 %JAVA_HOME%\bin 放在 PATH 上,而不是 %JAVA_HOME% 本身...