使用 Maven (最推荐)
Maven 是目前 Java 项目管理的事实标准,如果你的项目已经配置了 Maven,打包会非常简单。

前提条件
- 已安装 Maven:确保你的系统上已经安装了 Maven,并且环境变量
PATH中配置了 Maven 的bin目录。 - Eclipse 中有 Maven 插件:现代的 Eclipse IDE for Enterprise Java and Web Developers (或简称 Eclipse IDE) 通常已经内置了 Maven 插件,如果没有,可以通过
Help -> Eclipse Marketplace搜索 "m2e" 并安装。
操作步骤
第 1 步:配置 pom.xml 文件
pom.xml (Project Object Model) 是 Maven 项目的核心配置文件,你需要确保它包含了正确的打包信息。
-
在 Eclipse 的 Project Explorer 中,找到并打开你项目的
pom.xml文件。 -
设置打包类型:在
<project>标签内,找到<packaging>标签,根据你的项目类型,设置其值。
(图片来源网络,侵删)- 可执行 JAR (包含所有依赖):
<packaging>jar</packaging> - Web 应用 (WAR 包):
<packaging>war</packaging> - 库 (给别人用的 JAR):
<packaging>jar</packaging>(通常不需要特殊配置)
- 可执行 JAR (包含所有依赖):
-
配置主类 (Main Class):为了让生成的 JAR 文件可以直接通过
java -jar运行,你需要指定主类的入口,在pom.xml中添加以下插件配置:<build> <plugins> <!-- 这个插件用于将项目及其依赖打包成一个可执行的 "fat" 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 implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 在这里指定你的主类的全限定名 --> <mainClass>com.example.myapp.Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>- 注意:请将
<mainClass>com.example.myapp.Main</mainClass>替换成你自己项目的主类全限定名(package.ClassName)。
- 注意:请将
第 2 步:执行打包命令
- 在 Eclipse 的 Project Explorer 中,右键点击你的项目。
- 选择 Run As -> Maven build...。
- 在弹出的 "Edit Configuration" 窗口中:
- Goals 字段中输入:
clean packageclean:会先清理之前的编译和打包文件,确保一个干净的环境。package:执行打包操作。
- 点击 Run 按钮,Eclipse 底部的 Console 窗口会显示 Maven 的执行过程。
- Goals 字段中输入:
第 3 步:找到生成的 JAR 文件
打包成功后,你可以在项目的目录下找到生成的 JAR 文件。
路径通常是:your-project-name/target/your-project-name-1.0-SNAPSHOT.jar
your-project-name-1.0-SNAPSHOT.jar:这就是一个包含所有依赖的 "Fat JAR" 或 "Uber JAR",可以直接运行。- 你还会看到另一个文件
your-project-name-1.0-SNAPSHOT.jar.original,这是 Maven Shade 插件在修改之前的原始 JAR。
使用 Gradle
Gradle 是另一种非常流行的构建工具,其语法更现代化,配置更灵活。
前提条件
- 已安装 Gradle:确保系统上安装了 Gradle,并配置了环境变量。
- Eclipse 中有 Gradle 插件:通过
Help -> Eclipse Marketplace搜索 "Buildship" 并安装。
操作步骤
第 1 步:配置 build.gradle 文件
-
在 Project Explorer 中,找到并打开
build.gradle文件。 -
应用 Java 插件:确保文件开头有
apply plugin: 'java'。 -
配置 JAR 任务:在
build.gradle文件中添加或修改jar任务,以创建一个可执行的 "Fat JAR",通常我们会使用shadow插件。// 应用 Java 插件 apply plugin: 'java' // 应用 Shadow JAR 插件 (需要先在 buildscript 中添加仓库和依赖) apply plugin: 'com.github.johnrengelman.shadow' // 设置 Java 版本 sourceCompatibility = '1.8' targetCompatibility = '1.8' // 仓库配置 repositories { mavenCentral() } // 依赖配置 dependencies { // implementation 'org.slf4j:slf4j-api:1.7.30' } // Shadow JAR 任务配置 shadowJar { archiveBaseName.set('my-app') // 设置输出 JAR 的基本名称 archiveVersion.set('1.0') // 设置版本号 manifest { attributes 'Main-Class': 'com.example.myapp.Main' // 指定主类 } mergeServiceFiles() // 合并服务文件 (如果需要) }- 同样,请替换
Main-Class的值为你的主类全限定名。 shadow插件需要先配置,你可以在buildscript块中添加id 'com.github.johnrengelman.shadow' version '7.1.2' apply false。
- 同样,请替换
第 2 步:执行打包命令
- 右键点击项目。
- 选择 Run As -> Gradle Build。
- 在 "Gradle Tasks" 视图中:
- 展开项目,找到
build组下的shadowJar任务。 - 双击
shadowJar执行。 - 或者,在 "Common Tasks" 标签页中直接点击 build。
- 展开项目,找到
第 3 步:找到生成的 JAR 文件
生成的 "Fat JAR" 通常位于 build/libs/ 目录下,文件名类似 my-app-1.0.jar。
手动打包 (不推荐,仅适用于简单项目)
对于非常小的、没有外部依赖的纯 Java 项目,可以手动打包。这种方法在有依赖时会变得非常繁琐且容易出错,不推荐在生产环境中使用。
操作步骤
第 1 步:编译项目
- 右键点击项目。
- 选择 Build Path -> Configure Build Path...。
- 在 "Libraries" 标签页,确保所有依赖的 JAR 文件都在 "Referenced Libraries" 中。
- 点击 Apply and Close。
- 右键点击项目,选择 Build Project,Eclipse 会将
.java文件编译成.class文件,存放在bin目录下。
第 2 步:创建 JAR 文件
- 右键点击项目,选择 Export...。
- 在弹出的窗口中,展开 Java 文件夹,选择 JAR file,然后点击 Next。
- Export destination:选择你想要保存 JAR 文件的位置和文件名(
C:\temp\my-app.jar)。 - Select the resources to export:
- 勾选你的项目文件夹。
- 非常重要:展开你的项目,勾选
bin文件夹(包含编译后的.class文件)。 - 如果你的项目有资源文件(如
.properties,.xml, 图片等),也请勾选它们所在的文件夹。
- JAR Manifest specification:
- 选择 Generate the manifest file。
- 点击 Browse...,选择你的项目根目录下的
META-INF文件夹(如果没有,需要手动创建)。 - 关键一步:在
META-INF文件夹下创建一个名为MANIFEST.MF的文本文件,内容如下:Manifest-Version: 1.0 Main-Class: com.example.myapp.Main- 请务必将
Main-Class的值替换成你自己的主类全限定名。 - 注意:冒号后面有一个空格!
- 请务必将
- 点击 Finish。
第 3 步:处理依赖
这是手动打包最麻烦的一步!
- 无依赖:如果你的项目没有任何外部依赖(JAR 文件),那么上一步生成的 JAR 文件就可以直接运行。
- 有依赖:你需要将所有依赖的 JAR 文件解压,然后将里面的所有
.class文件和你自己项目的.class文件一起打包进新的 JAR,这个过程非常复杂,极易出错,这就是为什么强烈推荐使用 Maven 或 Gradle 的原因。
总结与对比
| 特性 | Maven | Gradle | 手动打包 |
|---|---|---|---|
| 易用性 | 中等,需要学习 pom.xml |
高,使用 Groovy/Kotlin DSL,更灵活 | 低,繁琐且易错 |
| 依赖管理 | 强大,中央仓库 | 非常强大,灵活的仓库配置 | 无需管理,但需手动处理 |
| 打包方式 | 标准化,插件丰富(如 shade) |
灵活,插件丰富(如 shadow) |
原始,功能有限 |
| 可重复性 | 非常高 | 非常高 | 低,容易因环境不同而出错 |
| 推荐度 | ⭐⭐⭐⭐⭐ (行业标准) | ⭐⭐⭐⭐⭐ (现代选择) | ⭐ (仅用于教学或极简项目) |
最终建议:
对于任何严肃的 Java 项目,请务必使用 Maven 或 Gradle,它们能为你节省大量时间,并确保构建过程的稳定和可重复性,如果你是新手,从 Maven 开始学习是一个不错的选择。
