239.md 6.8 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4 5 6 7 8
# 路径和 CLASSPATH

> 原文: [https://docs.oracle.com/javase/tutorial/essential/environment/paths.html](https://docs.oracle.com/javase/tutorial/essential/environment/paths.html)

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

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

W
wizardforcel 已提交
9
![JDK directory structure](img/5cf035e0d9f655a41545e2f82574ca42.jpg)
W
init  
wizardforcel 已提交
10 11 12 13 14 15 16 17 18

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

## 更新 PATH 环境变量(Microsoft Windows)

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

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

W
wizardforcel 已提交
19
```java
W
init  
wizardforcel 已提交
20 21 22 23 24 25 26 27
C:\Java\jdk1.7.0\bin\javac MyClass.java

```

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

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

W
wizardforcel 已提交
28
```java
W
init  
wizardforcel 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
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:

W
wizardforcel 已提交
61
```java
W
init  
wizardforcel 已提交
62 63 64 65 66 67
%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):

W
wizardforcel 已提交
68
```java
W
init  
wizardforcel 已提交
69 70 71 72 73 74 75 76 77 78
echo %SystemRoot%

```

* * *

## 更新 PATH 变量(Solaris 和 Linux)

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

W
wizardforcel 已提交
79
```java
W
init  
wizardforcel 已提交
80 81 82 83 84 85
% /usr/local/jdk1.7.0/bin/javac MyClass.java

```

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

W
wizardforcel 已提交
86
```java
W
init  
wizardforcel 已提交
87 88 89 90 91 92 93 94 95 96
% java -version

```

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

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

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

W
wizardforcel 已提交
97
```java
W
init  
wizardforcel 已提交
98 99 100 101 102 103
set path=(/usr/local/jdk1.7.0/bin $path)

```

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

W
wizardforcel 已提交
104
```java
W
init  
wizardforcel 已提交
105 106 107 108 109 110 111
PATH=/usr/local/jdk1.7.0/bin:$PATH
export PATH

```

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

W
wizardforcel 已提交
112
```java
W
init  
wizardforcel 已提交
113 114 115 116 117 118 119
PATH=/usr/local/jdk1.7.0/bin:$PATH
export PATH

```

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

W
wizardforcel 已提交
120
```java
W
init  
wizardforcel 已提交
121 122 123 124 125 126 127 128 129
PATH=/usr/local/jdk1.7.0/bin:$PATH
export PATH

```

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

对于 C shell(`csh`):

W
wizardforcel 已提交
130
```java
W
init  
wizardforcel 已提交
131 132 133 134 135 136 137
% source ~/.cshrc
% java -version

```

对于`ksh``bash``sh`

W
wizardforcel 已提交
138
```java
W
init  
wizardforcel 已提交
139 140 141 142 143 144 145
% . /.profile
% java -version

```

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

W
wizardforcel 已提交
146
指定类路径的首选方法是使用`-cp`命令行开关。这允许为每个应用程序单独设置`CLASSPATH`,而不会影响其他应用程序。*设置`CLASSPATH`可能很棘手,应小心执行。_
W
init  
wizardforcel 已提交
147 148 149 150 151

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

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

W
wizardforcel 已提交
152
```java
W
init  
wizardforcel 已提交
153 154 155 156 157 158
C:> echo %CLASSPATH%

```

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

W
wizardforcel 已提交
159
```java
W
init  
wizardforcel 已提交
160 161 162 163 164 165 166 167 168
% echo $CLASSPATH

```

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

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

类路径通配符允许您在类路径中包含`.jar`文件的整个目录,而无需单独指定它们。有关更多信息,包括类路径通配符的说明以及有关如何清理`CLASSPATH`环境变量的详细说明,请参阅[设置类路径](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html)技术说明。