Java应用部署最简指南:java -jar 命令详解,从Jar包到运行服务只要一行命令

作为一名Java开发者或DevOps工程师,部署应用是我们最日常的工作之一。
经过前面的构建流程,我们已经得到了一个包含所有依赖的可运行Jar包。这个Jar包被存储在制品仓库中,现在我们需要把它部署到服务器上,让用户能够访问。
那么问题来了:拿到Jar包之后,怎么把它跑起来?
今天这篇文章,我们就来讲解Java应用部署最核心、最基础的命令:java -jar。
一、部署前置准备:服务器需要什么?
在运行Jar包之前,目标服务器需要满足一个最基本的条件:
必须安装Java运行环境(JRE)或Java开发工具包(JDK)。
因为Jar包里的内容是Java字节码,不是机器可以直接执行的二进制代码。Java虚拟机(JVM)负责解释执行这些字节码。
可以通过以下命令验证服务器是否已安装Java:
java -version
如果输出了Java版本信息,说明环境已经就绪。如果没有,需要先安装JDK或JRE。
二、核心命令:java -jar
当服务器环境准备就绪,Jar包也已经上传到服务器后,启动应用只需要一行命令:
java -jar <Jar包文件名>
示例:
假设你的Jar包名为myapp-1.0.0.jar,那么启动命令就是:
java -jar myapp-1.0.0.jar
执行后,你会看到应用启动的日志输出。如果是一个Spring Boot应用,你会看到Spring的Logo和启动信息,最后显示类似Started Application in X seconds的提示,说明应用已经成功运行。
三、命令详解:java -jar 做了什么?
java -jar命令的作用是:
-
启动Java虚拟机(JVM)
-
找到Jar包中指定的主类(在
META-INF/MANIFEST.MF文件中通过Main-Class属性指定) -
加载Jar包中的所有类和依赖
-
执行main方法,启动应用
这行命令的背后,Java虚拟机会自动处理类路径(classpath),无需手动指定依赖——因为所有依赖都已经打包在Jar包里了。
这正是Java“一次编写,到处运行”理念的体现:只要服务器有Java环境,同一个Jar包可以在任何操作系统上直接运行。
四、实际部署场景中的注意事项
在实际生产环境中,直接运行java -jar通常不够,还需要考虑:
1. 后台运行
直接用java -jar启动,当终端关闭时应用也会停止。生产环境需要让应用在后台持续运行:
nohup java -jar myapp-1.0.0.jar > app.log 2>&1 &
2. 指定JVM参数
可以根据服务器配置调整内存等参数:
java -Xms512m -Xmx1024m -jar myapp-1.0.0.jar
3. 指定配置文件
Spring Boot应用可以通过--spring.config.location指定外部配置文件:
java -jar myapp-1.0.0.jar --spring.config.location=/path/to/application.yml
4. 使用系统服务
更规范的做法是将Java应用注册为系统服务(systemd),实现开机自启、自动重启等功能。
五、部署流程总结
一个完整的Java应用部署流程可以概括为:
-
构建:使用Maven/Gradle构建项目,生成可执行Jar包
-
存储:将Jar包上传到制品仓库(如Nexus、Artifactory)
-
分发:从制品仓库下载Jar包到目标服务器
-
准备:确保服务器已安装Java环境
-
启动:执行
java -jar命令运行应用 -
验证:检查应用日志,确认服务正常启动
最简部署流程(全新服务器):
# 1. 安装Java
sudo apt install openjdk-17-jre # Ubuntu/Debian
# 或
sudo yum install java-17-openjdk # CentOS/RHEL
# 2. 下载Jar包
wget http://nexus-server/repo/myapp-1.0.0.jar
# 3. 启动应用
java -jar myapp-1.0.0.jar
六、常见问题排查
Q1: 提示“无法找到或加载主类”
检查Jar包是否是可执行的。用以下命令查看MANIFEST.MF:
jar tf myapp-1.0.0.jar | grep MANIFEST
jar xf myapp-1.0.0.jar META-INF/MANIFEST.MF
cat META-INF/MANIFEST.MF
确保有Main-Class属性。
Q2: 提示“端口已被占用”
应用默认端口可能被其他进程占用。修改配置文件中的端口,或者杀掉占用端口的进程。
Q3: 应用启动后立即退出
查看日志输出,通常是配置错误或依赖缺失。确保所有必要的配置(如数据库连接)都正确。
七、总结
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | java -version |
确认服务器已安装Java环境 |
| 2 | wget/curl 下载Jar |
从制品仓库获取应用制品 |
| 3 | java -jar app.jar |
启动应用 |
| 4 | 查看日志 | 确认应用正常运行 |
java -jar是Java应用部署的基石。掌握了这行命令,你就掌握了Java应用从构建到运行的最后一步。
无论你是用Maven还是Gradle,无论你的项目有多复杂,最终交付给服务器的,都是一个Jar包。而让它跑起来的,就是这行简单的命令。
希望这篇文章对你有帮助!如果你对生产环境部署、容器化部署等进阶话题感兴趣,欢迎留言交流。
更多推荐




所有评论(0)