当前位置:首页 > Java

java程序如何发布

2026-03-03 13:46:58Java

打包 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 需包含 groupIdartifactIdversion 信息。

发布到远程仓库(如 Maven Central)

配置 settings.xmlpom.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 的本地安装体验。

java程序如何发布

标签: 程序java
分享给朋友:

相关文章

java如何输入

java如何输入

使用Scanner类进行输入 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读取数据。需要导入java.util.Scanner包。 基本语法: Scanner s…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何解决高并发

java如何解决高并发

Java 高并发解决方案 使用线程池优化资源管理 线程池(如 ThreadPoolExecutor)能避免频繁创建和销毁线程的开销。通过核心线程数、最大线程数和任务队列的合理配置,可以平衡系统负载。例…