java 如何打包
Java 打包方法
Java 项目可以通过多种方式进行打包,常见的打包工具包括 jar、Maven 和 Gradle。以下是几种常见的打包方式:
使用 jar 命令打包
-
编译 Java 文件
确保所有.java文件已编译为.class文件:javac -d ./classes src/*.java -
创建 JAR 文件
使用jar命令将编译后的.class文件打包:jar cvf MyApp.jar -C classes . -
指定主类(可选)
如果需要可执行的 JAR,可以在MANIFEST.MF文件中指定主类:echo "Main-Class: com.example.Main" > MANIFEST.MF jar cvfm MyApp.jar MANIFEST.MF -C classes .
使用 Maven 打包
-
配置
pom.xml
确保pom.xml中已定义打包方式:
<packaging>jar</packaging> -
运行打包命令
执行以下命令生成 JAR 文件:mvn package -
生成可执行 JAR(可选)
使用maven-assembly-plugin或maven-shade-plugin生成包含依赖的可执行 JAR:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
使用 Gradle 打包
-
配置
build.gradle
确保build.gradle中已定义jar任务:
plugins { id 'java' } jar { manifest { attributes 'Main-Class': 'com.example.Main' } } -
运行打包命令
执行以下命令生成 JAR 文件:gradle jar -
生成 Fat JAR(可选)
使用shadow插件生成包含依赖的可执行 JAR:plugins { id 'com.github.johnrengelman.shadow' version '7.1.2' } shadowJar { archiveBaseName.set('MyApp') archiveClassifier.set('') archiveVersion.set('') }
其他打包方式
-
使用 IDE 打包
Eclipse、IntelliJ IDEA 等 IDE 提供图形化界面打包工具,通常通过Export或Build选项生成 JAR 文件。 -
模块化打包(Java 9+)
如果使用 Java 模块系统,可以通过jlink或jpackage生成自定义运行时或安装包。
通过以上方法,可以灵活地根据项目需求选择合适的打包方式。






