当前位置:首页 > Java

如何将Java打包成.jar

2026-02-05 04:33:00Java

使用JDK的jar命令打包

确保JDK已安装并配置环境变量。在项目根目录(包含编译后的.class文件)执行以下命令:

jar cvf YourJarName.jar *

若需指定主类(可执行jar),需先创建MANIFEST.MF文件,内容为:

Main-Class: com.example.MainClass

再执行:

jar cvfm YourJarName.jar MANIFEST.MF *

使用Maven打包

pom.xml中配置打包插件:

如何将Java打包成.jar

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

执行命令:

mvn package

使用Gradle打包

build.gradle中配置:

plugins {
    id 'java'
}

jar {
    manifest {
        attributes 'Main-Class': 'com.example.MainClass'
    }
}

执行命令:

如何将Java打包成.jar

gradle jar

使用IDE打包(以IntelliJ为例)

右键项目 → Open Module Settings → Artifacts → 点击+ → JAR → From modules with dependencies。选择主类后,构建菜单选择Build Artifacts即可生成jar文件。

包含依赖库的Fat Jar

对于Maven项目,使用maven-assembly-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>com.example.MainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

对于Gradle项目,使用shadow插件:

plugins {
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}

shadowJar {
    manifest {
        attributes 'Main-Class': 'com.example.MainClass'
    }
}

标签: 如何将Java
分享给朋友:

相关文章

uniapp如何将底部导航组件化

uniapp如何将底部导航组件化

在 uniapp 中将底部导航组件化 将底部导航组件化可以提高代码复用性和维护性。以下是具体实现方法: 创建自定义底部导航组件 新建一个组件文件,例如 tab-bar.vue,放置在 compon…

Java如何实现异步处理

Java如何实现异步处理

Java实现异步处理的常见方法 使用CompletableFuture CompletableFuture是Java 8引入的异步编程工具,支持链式调用和组合操作。 CompletableFutur…

如何将react学精通

如何将react学精通

掌握核心概念 深入学习React的基础知识,包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。理解虚拟DOM的工作原理以及React的渲染机制。 实践项目驱…

react如何将函数挂载全局

react如何将函数挂载全局

在 React 中挂载函数到全局 将函数挂载到全局可以通过 window 对象实现。以下是一种常见的方法: 定义全局函数 // 在组件或工具文件中定义函数 const myGlobalFuncti…

react如何将页面静态化

react如何将页面静态化

React 页面静态化的方法 静态化(Static Site Generation, SSG)是将 React 应用预渲染为静态 HTML 文件的过程,提升加载速度和 SEO 友好性。以下是几种常见方…

如何将react项目放到git上

如何将react项目放到git上

初始化本地Git仓库 在项目根目录运行以下命令,初始化一个本地Git仓库: git init 创建.gitignore文件 在项目根目录创建.gitignore文件,排除不需要提交的文件(如no…