1. 引言

开发 Java 项目时,我们经常需要依赖外部库。本文将探讨几种将 JAR 文件添加到 classpath 的常用方法。

2. 使用命令行的 -cp-classpath 参数

直接在命令行指定 JAR 路径是最简单粗暴的方式:

java -cp /path/to/jar/file.jar com.example.MyClass

其中 /path/to/jar/file.jar 是 JAR 文件路径,com.example.MyClass 是要执行的主类。

添加多个 JAR 时,用分隔符连接(Linux/macOS 用 :,Windows 用 ;):

java -cp "lib/jar1.jar:lib/jar2.jar" com.example.MyClass

3. 使用命令行的 CLASSPATH 环境变量

当多个程序需要相同 JAR 时,可设置环境变量避免重复配置:

Linux/macOS:

export CLASSPATH=/path/to/jar/file.jar

Windows:

set CLASSPATH=C:\path\to\jar\file.jar

⚠️ 此设置仅对当前终端会话有效,关闭后失效。永久设置需修改系统环境变量

4. 在 MANIFEST.MF 文件中指定 Classpath

创建可执行 JAR 时,可将依赖打包到清单文件:

Manifest-Version: 1.0
Class-Path: lib/jar1.jar lib/jar2.jar
Main-Class: com.example.MainClass

打包时引入清单文件:

jar cvfm app.jar MANIFEST.MF -C /path/to/classes .

运行方式:

java -jar app.jar

✅ 此方式优先级高于命令行参数和环境变量。

5. 添加 JAR 到 lib/ext 目录

这是遗留机制:将 JAR 放入 Java 安装目录的 lib/ext 文件夹会自动加载到 classpath。

❌ 不推荐使用,原因:

  • 由扩展类加载器加载,优先级高于其他方式
  • 可能导致版本冲突
  • 违反依赖隔离原则

6. 在 Eclipse/IntelliJ IDE 中添加

主流 IDE 提供图形化操作:

Eclipse:

  1. 右键项目 → Build Path → Configure Build Path
  2. Libraries 标签页 → Add External JARs

IntelliJ:

  1. File → Project Structure
  2. Modules → Dependencies → + → JARs or directories

具体操作参考各 IDE 最新文档。

7. 使用构建工具

无论项目大小,构建工具都是更优解。主流选择:

Maven 示例:

<dependencies>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>example-library</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

执行 mvn package 自动处理依赖。

Gradle 示例:

dependencies {
    implementation 'com.example:example-library:1.0.0'
}

✅ 优势:

  • 自动管理传递依赖
  • 版本冲突解决
  • 与 IDE 深度集成

8. 总结

依赖管理是 Java 开发的基础技能,选择合适方式很重要:

场景 推荐方式
临时测试/脚本 命令行参数 (-cp)
单机多程序共享 环境变量 (CLASSPATH)
可执行 JAR 包 MANIFEST.MF
企业级项目 Maven/Gradle

⚠️ 避免使用 lib/ext 目录。现代项目强烈推荐使用构建工具管理依赖。


原始标题:Ways to Add JARs to Classpath in Java | Baeldung