当前位置:首页 > Java

java程序如何打包成jar

2026-03-04 02:27:16Java

使用命令行打包

在项目根目录下执行以下命令,将编译后的.class文件打包为JAR:

jar cvf YourJarName.jar *.class

若需指定主类,需先创建包含Main-Class信息的MANIFEST.MF文件:

Main-Class: com.example.MainClass

再执行:

jar cvfm YourJarName.jar MANIFEST.MF *.class

使用IDE打包(以Eclipse为例)

右击项目选择Export → Java → JAR file,勾选"Export generated class files and resources"。在JAR Packaging Options中可设置是否导出.class文件。若需可执行JAR,在Library Handling选择"Extract required libraries into generated JAR"。

使用Maven打包

在pom.xml中添加maven-jar-plugin配置:

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中添加配置:

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

执行命令:

java程序如何打包成jar

gradle jar

验证JAR文件

打包完成后可通过以下命令验证:

java -jar YourJarName.jar

或查看内容:

jar tf YourJarName.jar

包含依赖的Fat JAR

对于需要包含第三方库的项目,Maven可使用maven-assembly-plugin:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.example.MainClass</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

Gradle则使用shadow插件:

plugins {
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}
shadowJar {
    mergeServiceFiles()
}

标签: 程序java
分享给朋友:

相关文章

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件…