java 如何打包jar文件
使用命令行打包JAR文件
确保已安装JDK并配置好环境变量。打开命令行工具,导航到项目根目录(包含src和resources的目录)。
创建MANIFEST.MF文件(可选),指定主类等信息:
Main-Class: com.example.MainClass
编译Java文件并生成.class文件:
javac -d target/classes src//*.java
打包为JAR文件(包含清单文件):
jar cvfm myapp.jar MANIFEST.MF -C target/classes .
使用Maven打包JAR文件
在pom.xml中确保包含maven-jar-plugin插件配置:
<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
生成的JAR文件默认位于target目录下。

使用Gradle打包JAR文件
在build.gradle中添加Jar任务配置:
jar {
manifest {
attributes 'Main-Class': 'com.example.MainClass'
}
}
执行打包命令:
gradle jar
生成的JAR文件默认位于build/libs目录下。
包含依赖的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'
}
}
执行gradle shadowJar生成包含所有依赖的JAR。
验证JAR文件
检查JAR内容:
jar tf myapp.jar
运行JAR文件:
java -jar myapp.jar






