Ubuntu Java打包发布全流程指南
一、前期准备:安装Java环境与构建工具
在打包前,需确保Ubuntu系统已安装Java开发工具包(JDK)和构建工具(Maven/Gradle),这是Java项目编译与打包的基础。
- 安装OpenJDK:
推荐使用OpenJDK(如11或21版本),通过以下命令安装:安装完成后,验证JDK版本:sudo apt update sudo apt install openjdk-11-jdk # 或 openjdk-21-jdkjava -version # 输出JDK版本信息即表示成功 - 安装Maven/Gradle:
- Maven(常用构建工具):
sudo apt install maven mvn -v # 验证安装(输出Maven版本及JDK信息) - Gradle(替代方案):
sudo apt install gradle gradle -v # 验证安装
- Maven(常用构建工具):
二、使用Maven打包(适用于Maven项目)
若项目采用Maven管理依赖,可通过pom.xml配置快速生成可执行JAR包。
- 配置
pom.xml:
在项目根目录的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> <groupId>org.apache.maven.pluginsgroupId> <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> - 执行打包命令:
进入项目根目录,运行以下命令(clean清除旧构建,package编译并打包):mvn clean package -DskipTests # -DskipTests跳过测试(可选) - 获取打包结果:
打包完成后,在target目录下生成可执行JAR包(如your-project-1.0-SNAPSHOT.jar),包含编译后的代码和依赖库。
三、使用Gradle打包(适用于Gradle项目)
若项目采用Gradle管理,通过build.gradle配置生成可执行JAR包。
- 配置
build.gradle:
在项目根目录的build.gradle中添加application插件(指定主类),并配置jar任务(复制依赖到JAR内):plugins { id 'java' id 'application' } group 'com.example' version '1.0-SNAPSHOT' sourceCompatibility = 11 // 匹配JDK版本 repositories { mavenCentral() } dependencies { // 添加项目依赖(如testImplementation 'junit:junit:4.12') } mainClassName = 'com.example.MainClass' // 替换为你的主类全限定名 jar { manifest { attributes 'Main-Class': mainClassName } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } - 执行打包命令:
进入项目根目录,运行以下命令:gradle clean build - 获取打包结果:
打包完成后,在build/libs目录下生成可执行JAR包(如your-project-1.0-SNAPSHOT.jar)。
四、使用jpackage打包(生成原生安装包,JDK 14+)
若需要将Java应用打包为原生安装包(如.deb、.exe),可使用JDK自带的jpackage工具(适用于JDK 14及以上版本)。
- 配置打包参数:
在项目根目录创建jpackage配置(如jpackage.properties),指定应用名称、主类、输出路径等:name=MyJavaApp main-jar=target/your-project-1.0-SNAPSHOT.jar # 替换为你的JAR路径 main-class=com.example.MainClass # 替换为你的主类 output=output type=deb # 生成.deb安装包(Windows用exe,macOS用dmg) - 执行打包命令:
jpackage @jpackage.properties - 获取打包结果:
打包完成后,在output目录下生成原生安装包(如MyJavaApp_1.0_amd64.deb),可直接安装到Ubuntu系统。
五、部署与运行打包后的应用
无论使用哪种打包方式,最终需将生成的JAR包或安装包部署到目标环境(如Ubuntu服务器)。
- 传输文件到服务器:
使用scp命令将打包文件传输到服务器(本地→服务器):scp target/your-project-1.0-SNAPSHOT.jar user@your_server_ip:/path/to/deploy - 运行应用:
在服务器终端中,进入JAR包所在目录,运行以下命令:
若需后台运行(守护进程),可添加java -jar /path/to/deploy/your-project-1.0-SNAPSHOT.jarnohup和&:(nohup java -jar /path/to/deploy/your-project-1.0-SNAPSHOT.jar > app.log 2>&1 &app.log为日志文件,记录应用输出)
六、可选:使用Docker容器化部署(提升可移植性)
若需要跨平台部署或隔离环境,可将Java应用打包为Docker镜像。
- 创建Dockerfile:
在项目根目录创建Dockerfile,定义镜像基础(如OpenJDK)、复制JAR包、暴露端口:FROM openjdk:11-jdk-slim # 使用轻量级OpenJDK镜像 WORKDIR /app COPY target/your-project-1.0-SNAPSHOT.jar /app/app.jar # 替换为你的JAR路径 EXPOSE 8080 # 暴露应用端口(根据实际情况调整) CMD ["java", "-jar", "app.jar"] # 启动命令 - 构建与运行Docker镜像:
- 构建镜像:
docker build -t my-java-app . - 运行容器:
docker run -p 8080:8080 my-java-app # 将容器8080端口映射到主机8080端口
- 构建镜像:
通过以上步骤,可在Ubuntu系统上完成Java项目的打包与发布,根据需求选择合适的打包方式(JAR、原生安装包、Docker镜像),实现应用的快速部署与运行。
以上就是关于“Ubuntu Java如何打包发布”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm