开发者

将Java项目打包为可执行JAR文件的完整流程

目录
  • 方法一:使用 IntelliJ IDEA 打包
    • 步骤 1:配置项目结构
    • 步骤 2:配置主类
    • 步骤 3:构建 JAR 文件
  • 方法二:使用 Maven 打包
    • 步骤 1:添加 Maven 插件
    • 步骤 2:执行打包命令
    • 步骤 3:获取 JAR 文件
  • 方法三:使用 Gradle 打包
    • 步骤 1:配置 build.gradle
    • 步骤 2:执行打包命令
    • 步骤 3:获取 JAR 文件
  • 方法四:手动创建 JAR(不使用构建工具)
    • 步骤 1:编译 Java 文件
    • 步骤 2:创建清单文件
    • 步骤 3:打包为 JAR
  • 测试 JAR 文件
    • 常见问题解决
      • 问题:运行 JAR 时出现 "No main manifest attribute"
      • 问题:缺少依赖项
      • 问题:资源文件未包含
    • 最佳实践
      • 总结

        本文将详细介绍将 Java 项目打包为可执行 JAR 文件的完整流程,包括使用 IDE 和命令行两种方法。

        方法一:使用 IntelliJ IDEA 打包

        步骤 1:配置项目结构

        • 打开项目
        • 点击 File > Project Structure
        • 在 Project Settings 中选择 Artifacts
        • 点击 + 号 > JAR > From modules with dependencies

        步骤 2:配置主类

        • 在 "Main Class" 字段选择主类:例如:com.example.demo.DesktopFileSearch
        • 确保选择 "extract to the target JAR" 选项
        • 点击 OK

        步骤 3:构建 JAR 文件

        • 点击 Build > Build Artifacts
        • 选择您的 artifact > Build
        • 生成的 JAR 文件将位于 out/artifacts/ 目录下

        方法二:使用 Maven 打包

        步骤 1:添加 Maven 插件

        在 pom.XML 中添加以下插件配置:

        <build>
            <plugins>
                <!-- 编译插件 -->
                <plugin>
                    <groupIjsd>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-jar-plugin</artifactId>
                    <version>3.2.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <mainClass>com.example.demo.DesktopFileSearch</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                
                <!-- 包含依赖的插件(可选) -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.example.demo.DesktopFileSearch</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

        步骤 2:执行打包命令

        在项目根目录(包含 pom.xml 的目录)打开命令行,执行:

        mvn clean package

        步骤 3:获取 JAR 文件

        生成的 JAR 文件位于 target/ 目录

        如果使用了 assembly 插件,会生成两个文件:

        php
        • your-project-name.jar - 不含依赖
        • your-project-name-jar-with-dependencies.jar - 包含所有依赖

        方法三:使用 Gradle 打包

        步骤 1:配置 build.gradle

        在 build.gradle 文件中添加:

        plugins {
            id 'java'
            id 'application'
        }
         
        application {
            mainClassName = 'com.example.demo.DesktopFileSearch'
        }
         
        jar {
            manifest {
                attributes 'Main-Class': 'com.example.demo.DesktopFileSearch'
            }
            
            // 包含所有依赖(可选)
            from {
                configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
            }
        }

        步骤 2:执行打包命令

        在项目根目录执行:

        gradle clean build

        步骤 3:获取 JAR 文件

        生成的 JAR 文件位于 build/libs/ 目录

        方法四:手动创建 JAR(不使用构建工具)

        步骤 1:编译 Java 文件

        javac -d target/classes src/main/java/com/example/demo/*.java

        步骤 2:创建清单文件

        创建 MEjavascriptTA-INF/MANIFEST.MF 文件:

        Manifest-Version: 1.0
        Main-Class: com.example.demo.DesktopFileSearch
        Class-Path: .

        步骤 3:打包为 JAR

        jar cfm target/your-app.jar META-INF/MANIFEST.MF -C target/classes .

        测试 JAR 文件

        运行 JAR 文件以确保正确打包:

        java -jar your-app.jar

        常见问题解决

        问题:运行 JAR 时出现 "No main manifest attribute"

        解决方案

        • 确保 MANIFEST.MF 文件包含正确的 Main-Class 属性
        • 使用 jar tf your-app.jar 检查清单文件是否正确包含
        • 如果使用 Maven/Gradle,确保插件配置正确

        问题:缺少依赖项

        解决方案

        使用包含依赖的打包方式(如 maven-assembly-plugin)

        将所有依赖 JAR 放在同一目录,使用 -cp 指定类路径:

        java -cp "your-app.jar:libs/*" com.example.demo.DesktopFileSearch

        问题:资源文件未包含

        解决方案

        确保资源文件位于正确位置(如 src/main/resources)

        在构建配置中包含资源目录:

        java -cp "your-app.jar:libs/*" com.example.demo.DesktopFilehttp://www.devze.comSearch

        最佳实践

        版本控制:在 JAR 文件名中包含版本号

        依赖管理

        • 对于简单项目,使用包含依赖的单一 JAR
        • 对于大型项目,使用 lib 目录存放依赖

        签名验证:使用 jarsigner 对 JAR 进行签名

        jarsigner -keystore mykeystore.jks -storepass password -keypass password your-app.jar mykey

        瘦身打包:使用 ProGuard 或其它工具减小 JAR 大小

        跨平台测试:在不同操作系统上测试 JAR 文件

        总结

        打包 Java 应用程序为 JAR 文件是分发和部署的关键步骤。选择适合您项目的打包方法:

        • 简单项目:使用 IDE 内置的导出功能
        • 标准项目:使用 Maven 或 Gradle 构建
        • 需要依赖管理:使用包含依赖的打包方式
        • 特殊需求:手动创建 JAR 文件

        完成 JAR 打包后,您可以进一步使用 Launch4j 或 jpackage 工具将其转换为 EXE 文http://www.devze.com件,创建完整的 Windows 安装程序。

        以上就是将Java项目打包为可执行JAR文件的完整流程的详细内容,更多关于Java项目打包可执行JAR的资料请关注编程客栈(www.devze.com)其它相关文章!

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新开发

        开发排行榜