java程序如何打包
打包 Java 程序的方法
Java 程序可以通过多种方式打包,以下是常见的几种方法:
使用 JAR 文件打包
通过 jar 命令将编译后的 .class 文件和资源文件打包成 JAR 文件。JAR 文件是 Java 的标准打包格式,可以包含程序的所有依赖。
jar cvf MyProgram.jar -C classes/ .
如果需要指定主类,可以在 MANIFEST.MF 文件中添加 Main-Class 属性,然后打包时包含该文件:
jar cvfm MyProgram.jar MANIFEST.MF -C classes/ .
使用 Maven 打包
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>
运行以下命令生成 JAR 文件:

mvn package
使用 Gradle 打包
Gradle 是另一个流行的构建工具,支持灵活的打包配置。在 build.gradle 中配置打包任务:
plugins {
id 'java'
}
jar {
manifest {
attributes 'Main-Class': 'com.example.Main'
}
}
运行以下命令生成 JAR 文件:
gradle jar
使用 IDE 打包
大多数 Java IDE(如 Eclipse、IntelliJ IDEA)提供图形化界面打包功能。

- Eclipse:右键项目 ->
Export-> 选择JAR file。 - IntelliJ IDEA:
File->Project Structure->Artifacts-> 添加 JAR 配置。
打包为可执行文件
如果需要将 Java 程序打包为平台特定的可执行文件(如 .exe),可以使用工具如 Launch4j 或 jpackage(JDK 14+)。
使用 jpackage 打包:
jpackage --input target/ --name MyApp --main-jar MyProgram.jar --main-class com.example.Main
打包包含依赖
如果程序依赖第三方库,可以使用以下方法:
- Maven:配置
maven-assembly-plugin生成包含依赖的 JAR。 - Gradle:使用
shadowJar插件生成 fat JAR。 - 手动:将所有依赖 JAR 解压后重新打包到一个 JAR 中。
示例:Maven 打包包含依赖
<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.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
运行 mvn package 后,会生成一个包含所有依赖的 JAR 文件。






