如何将Java打包成.jar
使用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中配置打包插件:

<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'
}
}
执行命令:

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'
}
}






