当前位置:首页 > Java

java 程序如何发布

2026-02-05 02:27:22Java

打包 Java 程序

Java 程序通常通过 JAR(Java Archive)文件打包。使用 jar 命令或构建工具(如 Maven、Gradle)生成可执行的 JAR 文件。确保 MANIFEST.MF 文件中包含主类信息:

java 程序如何发布

Main-Class: com.example.Main

使用 Maven 时,在 pom.xml 中配置 maven-jar-plugin

java 程序如何发布

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

生成可执行文件

对于桌面应用,可使用工具将 JAR 转换为原生可执行文件:

  • jpackage(JDK 14+):生成平台特定的安装包(如 Windows 的 MSI、macOS 的 DMG)。
    jpackage --input target/ --name MyApp --main-jar app.jar --main-class com.example.Main
  • Launch4j:将 JAR 包装为 Windows 的 EXE 文件。
  • GraalVM Native Image:将 Java 程序编译为原生二进制文件。

发布到仓库或服务器

  • Maven 仓库:使用 mvn deploy 将库发布到 Nexus 或 Maven Central。
  • Web 服务器:将 WAR 文件部署到 Tomcat、Jetty 等服务器:
    cp app.war /path/to/tomcat/webapps/
  • 云平台:通过 Docker 容器化后部署到 Kubernetes 或云服务(AWS、Azure)。
    FROM openjdk:17
    COPY target/app.jar /app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]

分发方式

  • 直接分发:提供 JAR 文件下载,要求用户安装 JRE。
  • 安装包:使用 Inno Setup(Windows)、Packages(macOS)生成安装向导。
  • 应用商店:提交到 Mac App Store、Microsoft Store 或 Snapcraft。
  • Java Web Start(已弃用):替代方案为自包含的安装包或在线下载器。

版本与依赖管理

  • 语义化版本:遵循 MAJOR.MINOR.PATCH 规则标记版本。
  • 依赖打包:使用 maven-assembly-plugin 生成包含依赖的 fat JAR:
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
          <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
      </configuration>
    </plugin>

签名与安全

  • 代码签名:使用 jarsigner 对 JAR 签名:
    jarsigner -keystore myKeystore.jks app.jar myAlias
  • TLS/SSL:确保 Web 服务启用 HTTPS,避免敏感信息明文传输。

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

相关文章

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

java如何实现多继承

java如何实现多继承

在Java中,由于语言设计本身不支持多继承(即一个类不能直接继承多个父类),但可以通过以下方式间接实现类似多继承的效果: 使用接口实现多继承 接口允许一个类实现多个接口,从而继承多个抽象行为。接口中…

vue小程序实现

vue小程序实现

Vue 实现小程序的方案 Vue 本身是用于构建 Web 应用的框架,但可以通过一些工具和框架将 Vue 代码转换为小程序代码。以下是几种常见的实现方案: 使用 uni-app 框架 uni-app…

node vue 实现小程序

node vue 实现小程序

使用 Node.js 和 Vue.js 实现小程序的方案 技术栈选择 Node.js 作为后端服务,Vue.js 作为前端框架,结合小程序开发工具(如微信小程序或 UniApp)实现跨端开发。 后端…

php 实现java md5加密

php 实现java md5加密

PHP 实现 Java MD5 加密的兼容方法 Java 和 PHP 的 MD5 加密结果可能存在差异,主要因字符编码或输出格式不同。以下是确保两者结果一致的方法: 使用 hash 函数并处理编码…