当前位置:首页 > Java

java如何打jar包

2026-02-05 08:26:35Java

打包JAR文件的方法

使用jar命令工具打包
在命令行中切换到项目根目录,执行以下命令将编译后的.class文件打包为JAR:

jar cvf MyApp.jar *.class

参数说明:

  • c 创建新归档
  • v 生成详细输出
  • f 指定归档文件名
  • *.class 包含所有class文件

包含清单文件的打包方式

创建包含主类的MANIFEST.MF文件:

Main-Class: com.example.Main

执行打包命令时指定清单文件:

jar cvfm MyApp.jar MANIFEST.MF -C target/classes .

关键参数:

  • m 合并现有清单文件
  • -C 切换目录后执行操作

使用Maven打包

pom.xml中配置打包插件:

<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.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

执行打包命令:

mvn clean package

使用Gradle打包

build.gradle中配置主类信息:

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

执行打包任务:

gradle jar

可执行JAR的特殊处理

对于包含依赖库的情况:

  • Maven使用maven-assembly-plugin创建包含所有依赖的fat jar
  • Gradle通过shadow插件实现相同功能

Maven配置示例:

java如何打jar包

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

标签: javajar
分享给朋友:

相关文章

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

java如何连接mysql数据库

java如何连接mysql数据库

连接 MySQL 数据库的步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,可以在 pom.xml 中添加以下依赖: <dependency…

如何阅读java源码

如何阅读java源码

阅读Java源码的方法 选择合适的源码项目 初学者建议从JDK核心类库(如java.lang、java.util)或知名开源项目(如Spring、Guava)入手。选择文档完善、社区活跃的项目能降低理…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int abso…

如何学习好java

如何学习好java

掌握Java基础知识 学习Java的第一步是掌握其基础知识,包括数据类型、变量、运算符、控制流语句(如if-else、for循环、while循环)以及数组。这些是构建更复杂程序的基石。可以通过在线教程…