路径和 CLASSPATH

原文: https://docs.oracle.com/javase/tutorial/essential/environment/paths.html

本节介绍如何在 Microsoft Windows,Solaris 和 Linux 上使用PATHCLASSPATH环境变量。有关最新信息,请参阅安装 Java Development Kit(JDK)软件包中随附的安装说明。

安装软件后,JDK 目录将具有如下所示的结构。

JDK directory structure

bin目录包含编译器和启动器。

更新 PATH 环境变量(Microsoft Windows)

您可以在不设置PATH环境变量的情况下正常运行 Java 应用程序。或者,您可以选择将其设置为方便。

如果希望能够从任何目录方便地运行可执行文件(javac.exejava.exejavadoc.exe等)而不必键入命令的完整路径,请设置PATH环境变量。如果未设置PATH变量,则需要在每次运行时指定可执行文件的完整路径,例如:

  1. C:\Java\jdk1.7.0\bin\javac MyClass.java

PATH环境变量是由分号(;)分隔的一系列目录。 Microsoft Windows 从左到右按顺序查找PATH目录中的程序。您应该一次只有一个bin目录用于路径中的 JDK(第一个被忽略的目录),因此如果已存在,则可以更新该特定条目。

以下是PATH环境变量的示例:

  1. C:\Java\jdk1.7.0\bin;C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem

永久设置PATH环境变量非常有用,因此在重新启动后它将保持不变。要永久更改PATH变量,请使用控制面板中的系统图标。具体过程因 Windows 版本而异:

Windows XP

  1. 选择启动,选择控制面板。双击系统,然后选择高级选项卡。
  2. 单击环境变量。在系统变量部分中,找到PATH环境变量并选择它。单击编辑。如果PATH环境变量不存在,请单击New
  3. 编辑系统变量(或新系统变量)窗口中,指定PATH环境变量的值。单击确定。单击确定关闭所有剩余窗口。

Windows Vista:

  1. 在桌面上,右键单击我的电脑图标。
  2. 从上下文菜单中选择属性
  3. 单击高级选项卡(Vista 中的高级系统设置链接)。
  4. 单击环境变量。在系统变量部分中,找到PATH环境变量并选择它。单击编辑。如果PATH环境变量不存在,请单击New
  5. 编辑系统变量(或新系统变量)窗口中,指定PATH环境变量的值。单击确定。单击确定关闭所有剩余窗口。

Windows 7:

  1. 在桌面上,右键单击计算机图标。
  2. 从上下文菜单中选择属性
  3. 单击高级系统设置链接。
  4. 单击环境变量。在系统变量部分中,找到PATH环境变量并选择它。单击编辑。如果PATH环境变量不存在,请单击New
  5. 编辑系统变量(或新系统变量)窗口中,指定PATH环境变量的值。单击确定。单击确定关闭所有剩余窗口。

Note: You may see a PATH environment variable similar to the following when editing it from the Control Panel:

  1. %JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

Variables enclosed in percentage signs (%) are existing environment variables. If one of these variables is listed in the Environment Variables window from the Control Panel (such as JAVA_HOME), then you can edit its value. If it does not appear, then it is a special environment variable that the operating system has defined. For example, SystemRoot is the location of the Microsoft Windows system folder. To obtain the value of a environment variable, enter the following at a command prompt. (This example obtains the value of the SystemRoot environment variable):

  1. echo %SystemRoot%

更新 PATH 变量(Solaris 和 Linux)

您可以在不设置PATH变量的情况下运行 JDK,也可以选择将其设置为方便。但是,如果希望能够从任何目录运行可执行文件(javacjavajavadoc等)而不必键入命令的完整路径,则应设置路径变量。如果未设置PATH变量,则需要在每次运行时指定可执行文件的完整路径,例如:

  1. % /usr/local/jdk1.7.0/bin/javac MyClass.java

要确定路径是否正确设置,请执行:

  1. % java -version

这将打印java工具的版本,如果它可以找到它。如果版本旧或者您收到错误 java:Command not found ,则路径未正确设置。

要永久设置路径,请在启动文件中设置路径。

对于 C shell(csh),编辑启动文件(~/.cshrc):

  1. set path=(/usr/local/jdk1.7.0/bin $path)

对于bash,编辑启动文件(~/.bashrc):

  1. PATH=/usr/local/jdk1.7.0/bin:$PATH
  2. export PATH

对于ksh,启动文件由环境变量ENV命名。要设置路径:

  1. PATH=/usr/local/jdk1.7.0/bin:$PATH
  2. export PATH

对于sh,编辑配置文件(~/.profile):

  1. PATH=/usr/local/jdk1.7.0/bin:$PATH
  2. export PATH

然后加载启动文件并通过重复java命令验证路径是否已设置:

对于 C shell(csh):

  1. % source ~/.cshrc
  2. % java -version

对于kshbashsh

  1. % . /.profile
  2. % java -version

CLASSPATH变量是告诉应用程序(包括 JDK 工具)查找用户类的一种方法。 (属于 JRE,JDK 平台和扩展的类应该通过其他方式定义,例如引导类路径或扩展目录。)

指定类路径的首选方法是使用-cp命令行开关。这允许为每个应用程序单独设置CLASSPATH,而不会影响其他应用程序。设置CLASSPATH可能很棘手,应小心执行

类路径的默认值为“。”,表示仅搜索当前目录。指定 CLASSPATH 变量或-cp命令行开关将覆盖此值。

要检查是否在 Microsoft Windows NT / 2000 / XP 上设置了CLASSPATH,请执行以下操作:

  1. C:> echo %CLASSPATH%

在 Solaris 或 Linux 上,执行以下命令:

  1. % echo $CLASSPATH

如果未设置CLASSPATH,您将收到 CLASSPATH:未定义变量错误(Solaris 或 Linux)或仅%CLASSPATH%(Microsoft Windows NT / 2000 / XP)。

要修改CLASSPATH,请使用与PATH变量相同的步骤。

类路径通配符允许您在类路径中包含.jar文件的整个目录,而无需单独指定它们。有关更多信息,包括类路径通配符的说明以及有关如何清理CLASSPATH环境变量的详细说明,请参阅设置类路径技术说明。