原文: https://howtodoinjava.com/java/basics/java-classpath/

了解如何将类路径设置为环境变量并作为命令行参数传递。 在任何 Java 应用程序的运行期间,CLASSPATH是一个告诉 JVM 在何处查找类和包的参数,可以使用环境变量或命令行参数进行设置。

类路径分隔符

Windows;(分号)

Linux / Unix:(冒号)

1. 将 Java 类路径设置为环境变量

当您设置了在应用程序运行期间始终需要的 jar 文件集时,最好将它们添加到计算机的环境变量'CLASSPATH'中。 在应用程序运行时,应用程序类加载器将始终在此变量的指定路径下扫描 jar 文件和类。

要设置类路径环境变量,请在您的计算机中查找用户变量的位置,并添加存储 Jar 文件的所有路径。 在两个不同的文件夹,jar 文件或类之间使用分隔符。

例如,您可以通过以下方式找到环境变量:

  1. 在桌面上,右键单击计算机图标。
  2. 从上下文菜单中选择属性
  3. 单击高级系统设置链接。
  4. 单击环境变量。 在系统变量部分中,找到CLASSPATH环境变量并将其选中。 点击编辑。 如果CLASSPATH环境变量不存在,请单击New
  5. 添加所有用分隔符分隔的文件夹。 单击 OK。 通过单击 OK 关闭所有剩余的窗口。

Java 类路径 - 图1

系统属性

如果是第一次创建CLASSPATH,则需要在窗口中指定变量名的名称。 使用'.'(点)表示当前目录

2. 从命令行设置 Java 类路径

使用-classpath参数从命令提示符/控制台设置类路径。 使用以下给定的命令来设置不同需求的类路径。 假设我们有一个名为dependency的文件夹,用于放置 JAR 文件和其他类。

2.1 在类路径中添加单个 jar 文件

下面的语法示例将在类路径中添加单个 jar 文件。

  1. //WINDOWS
  2. $ set CLASSPATH=.;C:\dependency\framework.jar
  3. //Linux/Unix
  4. $ export CLASSPATH=.:/dependency/framework.jar

2.2 在类路径中添加多个 jar 文件

以下语法示例将在类路径中添加多个 jar 文件。 为此,只需将操作系统的分隔符(;:)用作为CLASSPATH指定的位置之间的分隔符。

要向添加目录中存在的所有 JAR 文件,请使用通配符('*')。

  1. //WINDOWS
  2. $ set CLASSPATH=C:\dependency\framework.jar;C:\location\otherFramework.jar
  3. $ set CLASSPATH=C:\dependency\framework.jar;C:\location\*.jar
  4. //Linux/Unix
  5. $ export CLASSPATH=/dependency/framework.jar:/location/otherFramework.jar
  6. $ export CLASSPATH=/dependency\framework.jar:/location/*.jar

2.3 将类添加到类路径

很多时候,您可能还需要在classpath中添加单个类。 为此,只需添加存在类文件的文件夹。 例如假设location文件夹中存在五个.class文件,您希望将它们包括在类路径中。

  1. //WINDOWS
  2. $ set CLASSPATH=C:\dependency\*;C:\location
  3. //Linux/Unix
  4. $ export CLASSPATH=/dependency/*:/location

最佳做法是,始终将所有 JAR 文件和应用程序类组织在一个根文件夹中。 这可能是应用程序的工作空间。

请注意,CLASSPATH中包含的子目录不会被加载。 为了加载子目录中包含的文件,必须在CLASSPATH中显式列出这些目录和/或文件。

3. 使用-classpath参数执行 Java 程序

除了将classpath设置为环境变量之外,您还可以在使用– classpath参数启动应用程序时将其他classpath传递给 Java 运行时。

  1. $ javac classpath C:\dependency\framework.jar MyApp.Java
  2. $ java classpath C:\dependency\framework.jar MyApp

4. 如何检查类路径

每当您希望验证CLASSPATH变量中的所有路径条目时,都可以使用echo命令进行验证。

  1. //Windows
  2. c:/> echo %CLASSPATH%
  3. //Linux/Unix
  4. $ echo $CLASSPATH

如果未设置CLASSPATH,则控制台将显示“CLASSPATH:未定义的变量”错误(Solaris 或 Linux),或仅在 Windows 命令提示符中打印%CLASSPATH%

学习愉快!

阅读更多:

Oracle Java 文档