java如何打jar包
使用 Maven 打包
在 Maven 项目中,可以通过 maven-jar-plugin 插件生成 JAR 文件。确保 pom.xml 文件中包含以下配置:
<build>
<plugins>
<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.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
运行以下命令生成 JAR 文件:
mvn clean package
生成的 JAR 文件会位于 target 目录下。
使用 Gradle 打包
在 Gradle 项目中,可以通过 jar 任务生成 JAR 文件。确保 build.gradle 文件中包含以下配置:
plugins {
id 'java'
}
jar {
manifest {
attributes 'Main-Class': 'com.example.MainClass'
}
}
运行以下命令生成 JAR 文件:
gradle jar
生成的 JAR 文件会位于 build/libs 目录下。
使用命令行手动打包
如果没有使用构建工具,可以通过 jar 命令手动打包。假设编译后的 .class 文件位于 out 目录:
-
创建
MANIFEST.MF文件(内容如下):Manifest-Version: 1.0 Main-Class: com.example.MainClass -
运行以下命令生成 JAR 文件:
jar cvfm app.jar MANIFEST.MF -C out/ .生成的
app.jar会包含所有out目录下的文件。
生成可执行 JAR(包含依赖)
如果需要将依赖库打包到 JAR 中,可以使用以下方式:
Maven(使用 maven-assembly-plugin):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
运行命令:
mvn clean compile assembly:single
Gradle(使用 shadow 插件):
plugins {
id 'com.github.johnrengelman.shadow' version '7.1.2'
}
shadowJar {
manifest {
attributes 'Main-Class': 'com.example.MainClass'
}
}
运行命令:
gradle shadowJar
验证 JAR 文件
可以通过以下命令验证 JAR 文件内容:
jar tf app.jar
运行 JAR 文件:
java -jar app.jar






