杰瑞科技汇

Java Eclipse如何正确打包可运行jar?

使用 Eclipse 自带的 "Export" 功能 (适合简单项目)

这是最直接、最简单的方法,适合不依赖外部库(JAR)的纯 Java 项目。

Java Eclipse如何正确打包可运行jar?-图1
(图片来源网络,侵删)

优点:

  • 无需额外安装插件。
  • 操作步骤直观。

缺点:

  • 对于依赖外部库(JAR)的项目,处理起来非常麻烦,通常需要手动将依赖的 JAR 文件解压后与你的代码一起打包,或者使用 Class-Path 清单属性(但这种方式不推荐,依赖管理混乱)。
  • 打包后的 JAR 文件通常无法直接通过 java -jar 命令运行(除非配置了正确的 Main-Class)。

详细步骤:

第一步:配置主类 (Main Class)

Eclipse 需要知道哪个类是你的程序入口点。

  1. 在 Package Explorer 中,右键点击你的项目,选择 Properties
  2. 在弹出的窗口中,选择 Run/Debug Settings
  3. 在右侧的列表中,点击 New... 创建一个新的启动配置。
  4. 在弹出的窗口中,选择 Java Application,然后点击 Next
  5. Project 下拉菜单中选择你的项目。
  6. Main class 文览框中,输入或选择包含 public static void main(String[] args) 方法的类。com.example.MyApp
  7. 点击 Finish
  8. (可选但推荐)回到主配置界面,点击 Apply and Close

第二步:导出 JAR 文件

  1. 在 Package Explorer 中,右键点击你的项目,选择 Export...

    Java Eclipse如何正确打包可运行jar?-图2
    (图片来源网络,侵删)
  2. 在弹出的窗口中,展开 Java 文件夹,选择 JAR file,然后点击 Next

  3. Export destination (导出目标)

    • 点击 Browse...,选择一个位置并输入你的 JAR 文件名(my-app.jar)。请确保文件名以 .jar。
  4. Export generated class files into existing JAR (导出选项)

    • 确保 Export generated class files and resources 被选中。
    • 在下方的框中,默认会选中你的整个项目,如果只想打包部分内容,可以在这里调整,通常保持默认即可。
  5. (关键一步) 选择 JAR 文件选项

    Java Eclipse如何正确打包可运行jar?-图3
    (图片来源网络,侵删)
    • 勾选 Generate the manifest file (生成清单文件),这是让 JAR 可运行的关键。
    • 勾选 Use existing manifest from workspace (使用工作空间中的现有清单)。
    • 在下拉菜单中,选择你刚刚在第一步中创建的启动配置(你为 MyApp 创建的那个配置),Eclipse 会自动将 Main-Class 信息写入到 MANIFEST.MF 文件中。
  6. 点击 Finish,Eclipse 会开始打包并生成 JAR 文件。

第三步:验证 JAR 文件

  1. 打开命令行(Windows 的 CMD 或 PowerShell,macOS/Linux 的 Terminal)。
  2. 使用 cd 命令切换到你保存 JAR 文件的目录。
  3. 运行命令:
    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-pluginmaven-assembly-plugin),可以轻松打包一个包含所有依赖的“胖 JAR”(Fat JAR / Uber JAR),方便直接运行。

详细步骤:

第一步:将项目转换为 Maven 项目

如果你的项目还不是 Maven 项目,可以轻松转换:

  1. 右键点击你的项目 -> Configure -> Convert to Maven Project
  2. 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”。

  1. 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> 的值替换为你自己的主类全名。

第四步:执行打包命令

  1. 在 Eclipse 的 Package Explorer 中,右键点击 pom.xml 文件。
  2. 选择 Run As -> Maven build...
  3. Goals 输入框中,输入 clean package
    • clean:会先清理之前生成的所有文件(target 目录)。
    • package:会执行编译、测试,并打包项目。
  4. 点击 Run

Maven 会开始执行构建过程,构建成功后,你会在项目的 target 目录下找到一个 JAR 文件,它的名字通常是 你的项目名-版本号.jarmy-app-1.0-SNAPSHOT.jar),这个就是你的“胖JAR”。

第五步:验证 JAR 文件

打开命令行,进入 target 目录,运行:

java -jar my-app-1.0-SNAPSHOT.jar

程序应该能直接运行,因为它包含了所有必需的依赖库。


总结与对比

特性 Eclipse Export Maven
易用性 简单直观,无需额外配置 初次配置稍复杂,但一劳永逸
依赖管理 极其麻烦,不推荐 自动化,非常强大
可重复性 差,依赖环境 高,pom.xml 定义一切
可扩展性 强,拥有庞大的插件生态
推荐场景 非常小的、无外部依赖的练习或脚本项目 几乎所有商业项目和个人项目

最终建议:

  • 新手或简单项目:可以从 方法一 开始,理解 JAR 打包的基本概念。
  • 任何正式项目或使用第三方库的项目:请直接学习并使用 方法二 (Maven),这会为你节省大量时间,并让你养成良好的开发习惯。
分享:
扫描分享到社交APP
上一篇
下一篇