使用 Eclipse 自带的 "Export" 功能 (适合简单项目)
这是最直接、最简单的方法,适合不依赖外部库(JAR)的纯 Java 项目。

优点:
- 无需额外安装插件。
- 操作步骤直观。
缺点:
- 对于依赖外部库(JAR)的项目,处理起来非常麻烦,通常需要手动将依赖的 JAR 文件解压后与你的代码一起打包,或者使用 Class-Path 清单属性(但这种方式不推荐,依赖管理混乱)。
- 打包后的 JAR 文件通常无法直接通过
java -jar命令运行(除非配置了正确的 Main-Class)。
详细步骤:
第一步:配置主类 (Main Class)
Eclipse 需要知道哪个类是你的程序入口点。
- 在 Package Explorer 中,右键点击你的项目,选择 Properties。
- 在弹出的窗口中,选择 Run/Debug Settings。
- 在右侧的列表中,点击 New... 创建一个新的启动配置。
- 在弹出的窗口中,选择 Java Application,然后点击 Next。
- 在 Project 下拉菜单中选择你的项目。
- 在 Main class 文览框中,输入或选择包含
public static void main(String[] args)方法的类。com.example.MyApp。 - 点击 Finish。
- (可选但推荐)回到主配置界面,点击 Apply and Close。
第二步:导出 JAR 文件
-
在 Package Explorer 中,右键点击你的项目,选择 Export...。
(图片来源网络,侵删) -
在弹出的窗口中,展开 Java 文件夹,选择 JAR file,然后点击 Next。
-
Export destination (导出目标):
- 点击 Browse...,选择一个位置并输入你的 JAR 文件名(
my-app.jar)。请确保文件名以.jar。
- 点击 Browse...,选择一个位置并输入你的 JAR 文件名(
-
Export generated class files into existing JAR (导出选项):
- 确保 Export generated class files and resources 被选中。
- 在下方的框中,默认会选中你的整个项目,如果只想打包部分内容,可以在这里调整,通常保持默认即可。
-
(关键一步) 选择 JAR 文件选项:
(图片来源网络,侵删)- 勾选 Generate the manifest file (生成清单文件),这是让 JAR 可运行的关键。
- 勾选 Use existing manifest from workspace (使用工作空间中的现有清单)。
- 在下拉菜单中,选择你刚刚在第一步中创建的启动配置(你为
MyApp创建的那个配置),Eclipse 会自动将Main-Class信息写入到 MANIFEST.MF 文件中。
-
点击 Finish,Eclipse 会开始打包并生成 JAR 文件。
第三步:验证 JAR 文件
- 打开命令行(Windows 的 CMD 或 PowerShell,macOS/Linux 的 Terminal)。
- 使用
cd命令切换到你保存 JAR 文件的目录。 - 运行命令:
java -jar my-app.jar
如果你的程序成功启动,说明打包成功。
使用 Maven (强烈推荐,适合任何项目)
对于任何稍微复杂一点的项目,特别是使用了第三方库(如 Spring, MySQL Connector, Log4j 等)的项目,强烈推荐使用 Maven 或 Gradle 这样的构建工具,Maven 可以自动管理依赖、编译代码、打包,是现代 Java 开发的标准。
优点:
- 自动管理依赖:你只需在
pom.xml中声明依赖,Maven 会自动下载并管理所有相关的 JAR 文件,无需手动处理。 - 标准化的构建流程:
mvn package一个命令即可完成所有工作。 - 可重复性:任何人在任何环境下使用相同的
pom.xml都能构建出完全相同的 JAR 包。 - 打包成可执行 JAR:通过 Maven 插件(如
maven-shade-plugin或maven-assembly-plugin),可以轻松打包一个包含所有依赖的“胖 JAR”(Fat JAR / Uber JAR),方便直接运行。
详细步骤:
第一步:将项目转换为 Maven 项目
如果你的项目还不是 Maven 项目,可以轻松转换:
- 右键点击你的项目 -> Configure -> Convert to Maven Project。
- Eclipse 会为你创建一个
pom.xml文件,打开它,配置项目的基本信息,如groupId,artifactId,version。
第二步:添加依赖
在 pom.xml 文件的 <dependencies> 标签中,添加你项目需要的所有库,添加一个日志库:
<dependencies>
<!-- JUnit 5 for testing -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<!-- Log4j 2 for logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
</dependencies>
保存 pom.xml 文件,Eclipse 会自动在后台下载依赖。
第三步:配置 Maven 插件以打包成可执行 JAR
我们需要使用 Maven Shade Plugin 来创建一个包含所有依赖的“胖 JAR”。
- 在
pom.xml文件中,添加<build>和<plugins>部分。
<build>
<plugins>
<!-- 这个插件用于编译代码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- 这个插件用于创建包含所有依赖的"胖JAR" -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- 这个transformer会设置JAR的Main-Class -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.MyApp</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
重要:将 <mainClass> 的值替换为你自己的主类全名。
第四步:执行打包命令
- 在 Eclipse 的 Package Explorer 中,右键点击
pom.xml文件。 - 选择 Run As -> Maven build...。
- 在 Goals 输入框中,输入
clean package。clean:会先清理之前生成的所有文件(target目录)。package:会执行编译、测试,并打包项目。
- 点击 Run。
Maven 会开始执行构建过程,构建成功后,你会在项目的 target 目录下找到一个 JAR 文件,它的名字通常是 你的项目名-版本号.jar(my-app-1.0-SNAPSHOT.jar),这个就是你的“胖JAR”。
第五步:验证 JAR 文件
打开命令行,进入 target 目录,运行:
java -jar my-app-1.0-SNAPSHOT.jar
程序应该能直接运行,因为它包含了所有必需的依赖库。
总结与对比
| 特性 | Eclipse Export | Maven |
|---|---|---|
| 易用性 | 简单直观,无需额外配置 | 初次配置稍复杂,但一劳永逸 |
| 依赖管理 | 极其麻烦,不推荐 | 自动化,非常强大 |
| 可重复性 | 差,依赖环境 | 高,pom.xml 定义一切 |
| 可扩展性 | 差 | 强,拥有庞大的插件生态 |
| 推荐场景 | 非常小的、无外部依赖的练习或脚本项目 | 几乎所有商业项目和个人项目 |
最终建议:
- 新手或简单项目:可以从 方法一 开始,理解 JAR 打包的基本概念。
- 任何正式项目或使用第三方库的项目:请直接学习并使用 方法二 (Maven),这会为你节省大量时间,并让你养成良好的开发习惯。
