阅读量:1
Java在Ubuntu上的打包发布方法
1. 准备基础环境
在打包前需安装Java开发工具包(JDK)和构建工具(如Maven/Gradle),确保系统具备编译和打包能力:
- 安装OpenJDK(以JDK 11为例):
验证安装:sudo apt update sudo apt install openjdk-11-jdkjava -version(显示版本信息即为成功)。 - 安装Maven(可选,用于项目构建):
验证安装:sudo apt install mavenmvn -version。
2. 使用构建工具生成可执行JAR(最常用)
Maven项目
- 配置
pom.xml:添加maven-jar-plugin(指定主类)和maven-dependency-plugin(复制依赖到lib目录),确保生成的JAR包含所有依赖:<build> <plugins> <plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-jar-pluginartifactId> <version>3.2.0version> <configuration> <archive> <manifest> <addClasspath>trueaddClasspath> <classpathPrefix>lib/classpathPrefix> <mainClass>com.example.MainClassmainClass> manifest> archive> configuration> plugin> <plugin> <artifactId>maven-dependency-pluginartifactId> <version>3.2.0version> <executions> <execution> <id>copy-dependenciesid> <phase>packagephase> <goals> <goal>copy-dependenciesgoal> goals> <configuration> <outputDirectory>${project.build.directory}/liboutputDirectory> configuration> execution> executions> plugin> plugins> build> - 执行打包命令:
生成的JAR文件位于mvn clean packagetarget/目录(如my-app-1.0-SNAPSHOT.jar)。
Gradle项目
- 配置
build.gradle:应用java和application插件,指定主类,并将依赖复制到JAR中:plugins { id 'java' id 'application' } mainClassName = 'com.example.MainClass' // 替换为你的主类 jar { manifest { attributes 'Main-Class': mainClassName } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } - 执行打包命令:
生成的JAR文件位于gradle clean buildbuild/libs/目录(如my-app-1.0.jar)。
3. 打包为Debian安装包(.deb,适合Ubuntu分发)
若需将Java应用打包为Ubuntu原生安装包(支持apt安装),可使用dpkg-deb工具:
- 创建目录结构:
mkdir -p my-java-app/DEBIAN my-java-app/usr/bin my-java-app/usr/share/applications - 编写
control文件(位于DEBIAN/目录):定义包元数据(名称、版本、依赖等):Package: my-java-app Version: 1.0 Architecture: all Maintainer: Your NameDepends: openjdk-11-jre # 依赖的Java运行时 Description: A brief description of your Java application - 创建启动脚本(位于
usr/bin/目录,如my-java-app):赋予执行权限:#!/bin/sh java -jar /usr/share/java/my-java-app.jar # 替换为实际JAR路径chmod +x my-java-app/DEBIAN/my-java-app。 - 复制JAR文件:将构建好的可执行JAR复制到
usr/share/java/目录(如my-java-app.jar)。 - 打包为.deb:
生成的cd my-java-app sudo dpkg-deb --build ..deb文件位于上级目录(如my-java-app_1.0_all.deb),可通过sudo dpkg -i my-java-app_1.0_all.deb安装。
4. 使用Docker容器化发布(跨平台部署)
将Java应用打包为Docker镜像,实现跨平台、一致性部署:
- 创建
Dockerfile(位于项目根目录):FROM openjdk:11-jdk-slim # 使用轻量级OpenJDK镜像 WORKDIR /app COPY target/my-app.jar . # 复制构建好的JAR(Maven示例) EXPOSE 8080 # 暴露应用端口 CMD ["java", "-jar", "my-app.jar"] # 启动命令 - 构建镜像:
docker build -t my-java-app . - 运行容器:
此时可通过docker run -p 8080:8080 my-java-app # 将容器端口8080映射到主机端口8080http://localhost:8080访问应用。
5. 可选:生成Windows可执行文件(.exe)
若需在Windows平台运行Java应用,可使用Launch4j工具将JAR打包为.exe:
- 下载并安装Launch4j:从官网下载后解压。
- 配置Launch4j:
- 选择“JAR in EXE mode”,添加你的JAR文件。
- 配置输出路径(如
my-app.exe)、图标等。 - 在“JRE”选项卡中设置最低Java版本(如
11)。
- 生成.exe文件:点击“Build wrapper”即可生成。
以上方法覆盖了Java在Ubuntu上的常见打包发布场景,可根据需求选择合适的方式(如快速分发用JAR,正式发布用.deb,跨平台用Docker)。
以上就是关于“Java在Ubuntu上如何打包发布”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm