java程序如何发布
打包 Java 程序为 JAR 文件
使用 JDK 自带的 jar 工具将编译后的 .class 文件和资源文件打包为 JAR 文件。通过以下命令生成可执行的 JAR 文件(需包含 MANIFEST.MF 指定主类):
jar cvfm app.jar MANIFEST.MF -C target/classes .
MANIFEST.MF 示例内容:
Main-Class: com.example.Main
构建可执行的独立 JAR
通过 Maven 或 Gradle 插件生成包含依赖的 Fat JAR(如 Spring Boot 的 spring-boot-maven-plugin)。Maven 配置示例:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
发布到本地 Maven 仓库
使用 Maven 将库项目安装到本地仓库供其他项目依赖:
mvn install
生成的 pom.xml 需包含 groupId、artifactId 和 version 信息。
发布到远程仓库(如 Maven Central)
配置 settings.xml 和 pom.xml 添加仓库认证信息,运行:
mvn clean deploy
需提前在 Sonatype 等平台注册账号并完成 GPG 签名配置。
生成原生镜像(GraalVM)
使用 GraalVM 的 native-image 工具将 Java 程序编译为原生可执行文件:
native-image -jar app.jar --no-fallback
适用于需要快速启动或无 JVM 环境的场景。
容器化部署(Docker)
创建 Dockerfile 基于 OpenJDK 或原生镜像构建容器:
FROM openjdk:17-jdk
COPY target/app.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
构建并运行容器:
docker build -t java-app .
docker run -p 8080:8080 java-app
平台特定打包(JPackage)
使用 JDK 14+ 的 jpackage 生成系统安装包(如 .deb、.msi):
jpackage --input target/ --name MyApp --main-jar app.jar --main-class com.example.Main
支持 Windows、Linux 和 macOS 的本地安装体验。







