云服务器上如何运行可运行jar包,jar包启动命令是什么?

在云服务器上运行可运行的jar包,核心就三步:上传jar包、安装Java环境、用命令或systemd启动并保持后台运行。 今天我用一套可直接照抄的流程,帮你把“能跑”变成“跑得稳”。

云服务器怎么运行jar包?先搞清楚这三件事

很多朋友第一次把jar包丢到云服务器上,直接敲java -jar app.jar,窗口一关服务就没了,或者外网死活访问不到,问题往往出在下面这三件事上:

linux jar服务的启动和停止写法
加载中
linux jar服务的启动和停止写法
  • 确认这个jar包本身能独立运行:本地执行java -jar app.jar,如果报“没有主清单属性”或缺少依赖,说明包没打对,先解决打包问题再谈部署。
  • 确认云服务器上Java环境版本匹配:用java -version查看,如果项目是JDK 8编译的,服务器上装了JDK 17,可能能跑,但某些框架会有兼容性警告;反过来老版本JDK跑新版class会直接报UnsupportedClassVersionError。
  • 确认端口、防火墙和云安全组都放行:这一步最容易被忽略,即使你本地测试一切正常,云服务器外网访问不了,八成是安全组没开端口,而不是程序的问题。

把这三件事捋顺,部署jar包就算走完了一半。

云服务器部署jar包完整步骤:从上传到启动

下面以Linux云服务器(CentOS/Ubuntu/Debian都适用)为例,带你走一遍完整流程。

第一步:把jar包上传到云服务器

常见做法有三种,根据你的使用习惯选一种即可:

  • scp命令上传(适合习惯终端的你):在本地电脑执行scp ./app.jar root@你的服务器IP:/opt/app/,回车后输入密码,注意/opt/app目录要先建好。
  • 宝塔面板上传(适合有可视化面板的你):登录宝塔,进入文件管理,找到目标目录,直接拖拽上传,操作感类似网盘。
  • 使用云厂商的对象存储中转(适合大文件):先把jar包传到OSS或COS,再通过内网下载到服务器,速度比公网scp快很多。

不管哪种方式,请把jar包放到固定目录,比如/opt/app/,后面所有命令和配置都基于这个路径。

第二步:检查并安装匹配的Java环境

先执行java -version看看有没有Java,如果没有,或者版本不对,按下面的命令安装OpenJDK(以Ubuntu为例):

sudo apt update
sudo apt install openjdk-8-jdk   # 如果你的项目基于JDK 8
sudo apt install openjdk-11-jdk  # 如果基于JDK 11
sudo apt install openjdk-17-jdk  # 如果基于JDK 17

CentOS使用yum install java-1.8.0-openjdk

云服务器上如何运行可运行jar包,jar包启动命令是什么?

或yum install java-17-openjdk,装完后再执行java -version确认,行业共识认为,Java 8和11依然是存量项目的主力,新项目选17或21的人也越来越多,但请务必以你项目编译时的版本为准。

第三步:启动jar包并保持后台运行

先在前台跑一次,确认无报错:

cd /opt/app
java -jar app.jar --server.port=8080

看到“Started Application in x seconds”之类的日志后,说明程序正常启动,这时Ctrl+C结束前台进程,然后改用后台方式启动:

nohup java -jar app.jar --server.port=8080 > app.log 2>&1 &

这条命令把日志写入app.log,进程进入后台,使用ps -ef | grep app.jar查看进程,使用tail -f app.log查看运行日志,但这种方式的缺点是:服务器重启后进程不会自动拉起,进程被误杀也不会自动恢复,所以更推荐下面的systemd方案。

用systemd把jar包做成系统服务

在/etc/systemd/system/app.service中写入配置:

[Unit]
Description=My Java Jar App
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /opt/app/app.jar --server.port=8080
WorkingDirectory=/opt/app
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target

然后执行:

systemctl daemon-reload
systemctl start app
systemctl enable app

这样无论进程崩溃还是服务器重启,服务都会自动拉起,这也是目前云服务器运行jar包的主流做法。

云服务器运行jar包常见问题:内存、端口、日志

内存不足怎么办?

很多云服务器默认只有2G内存,Spring Boot项目启动后可能直接报OutOfMemoryError,先用free -h查看内存用量,然后给JVM限定堆内存,比如给1G内存的分配512M:

java -Xms256m -Xmx512m -jar app.jar

如果还嫌不够,可以考虑增加swap分区,但性能不如物理内存,只适合应急。

端口被占用或外网访问不到?

端口被占用时执行lsof -i:8080或netstat -tlnp | grep 8080,找到占用进程PID后kill -9 PID即可。

外网访问不到,重点检查四件事:

  • 云安全组:登录云控制台,找到对应的服务器实例,在安全组规则中放行8080端口(入方向,源设为0.0.0.0/0)。
  • 系统防火墙:Ubuntu用ufw status查看,CentOS用firewall-cmd --list-all查看,如果开启,放行对应端口。
  • 监听地址:启动jar包时默认监听0.0.0.0,但如果你配置了

    云服务器上如何运行可运行jar包,jar包启动命令是什么?

    server.address=127.0.0.1,外网肯定访问不了,改成0.0.0.0或删掉该配置。

  • 程序本身的访问路径:访问时要带上下文路径,比如http://IP:8080/api。

日志怎么看?

使用tail -f app.log实时追踪日志,如果日志文件太大,用ls -lh app.log确认大小,超过几百M可以考虑配置logback按天滚动,排查问题最常用的命令就是journalctl配合systemd服务,不过前提是你用了systemd方案。

云服务器jar包部署用哪种方式好?直接命令、screen还是systemd

很多教程会让你用screen挂jar包,确实比nohup直观些,但论稳定性,三种方案各有优劣:

方式 优点 缺点 适用场景
nohup 简单、零学习成本 服务器重启不自动拉起,进程容易丢 临时测试、快速验证
screen 可挂载多个会话,方便查看 同样需要登录后手动恢复,且root权限下易误操作 轻量后台运行
systemd 开机自启、崩溃自动重启、日志统一管理 配置稍复杂,需了解systemd语法 生产环境、长期运行

多数情况下,我建议直接用systemd,它不只是“运行jar包”,而是把jar包当成一个服务来管理,这也是云服务器部署应用的标准姿势。

云服务器跑jar包要什么配置?

很多朋友爱问“1核2G够不够”这类问题,坦白讲,这取决于你的应用类型:

  • 纯API接口服务,并发不高:1核2G可以跑,JVM堆内存控制在512M-1G即可。
  • Spring Boot +MySQL + Redis,有一定业务逻辑:建议2核4G起步,留出数据库和缓存的空间。
  • 定时任务、数据处理类应用:CPU比内存更重要,同样2核4G起步。

如果担心内存不够,可以先用java -XX:+PrintFlagsFinal -version查看默认堆大小,再根据服务器实际内存调整-Xmx参数,需要注意的是,即使配置再高,JVM堆内存也该有上限,避免内存溢出拖垮整台服务器。

简米云服务器部署jar包与常见坑

以简米云为例,部署流程和通用步骤完全一致,但有两个简米云特有的“坑”值得单独说:

  • 安全组有两层:简米云控制台的云服务器ECS安全组需要放行端口,同时如果你还启用了云防火墙,也要一并放行,很多人只改了系统防火墙,忘了安全组,结果端口一直不通。
  • 云服务器上如何运行可运行jar包,jar包启动命令是什么?

  • 使用公网IP直连还要注意安全:如果直接裸奔8080端口,建议尽快改成通过Nginx反向代理到内部端口,并使用HTTPS证书。

这里插一句经验:酷番云服务器运行jar包时,经常遇到“nohup启动后SSH断开服务就挂掉”的问题,其实是因为启动后没有标准输入重定向,加上连接断开未完全杀掉进程组。 解决方法是把启动命令写成:

nohup java -jar app.jar </dev/null > app.log 2>&1 &

把</dev/null加上,再配合systemd,基本就不会出现断SSH丢进程的情况了。

云服务器运行jar包,如何保活和自启动?

这一步实际上是生产环境的最后一块拼图,除了systemd的Restart=always,你还可以配合定时健康检查:

/5     /usr/bin/health_check.sh

核心逻辑:检测进程是否存活,如果挂了就执行systemctl restart app,不过既然用了systemd,这个定时脚本并非必需,systemd已经能处理绝大多数异常退出场景。

简单总结:上传、配环境、启动,是云服务器运行jar包的基本动作;systemd负责保活和自启动,安全组负责外网访问,日志文件负责排查问题。 把这四件事串起来,你的jar包就能像正式服务一样稳定运行了。

云服务器运行jar包:3个高频问题

云服务器运行jar包提示“没有主清单属性”怎么办?

这个问题的全称是no main manifest attribute in app.jar,意思是jar包里缺少启动类信息,解决方法两步走:第一步,在pom.xml(Maven项目)或build.gradle(Gradle项目)里配置Main-Class;第二步,重新执行mvn clean package或gradle bootJar打包,检查打包后的MANIFEST.MF文件,确认里面有Main-Class一行即可。

jar包启动后外网访问不了,一定是程序代码问题吗?

不一定,按频率排序,首先是云安全组未放行端口,其次是服务器防火墙拦截,接着是jar包监听地址绑定到了127.0.0.1,最后才是程序本身逻辑或上下文路径不对,建议按这个顺序排查,大概率在安全组环节就能找到答案。

部署jar包用宝塔还是纯命令行?

两者都能完成部署,宝塔方便管理文件和进程,点几下就能上传、看日志、管理服务,适合不太熟悉Linux命令的运维,纯命令行更透明、路径可控,资源占用也更少,适合已经习惯终端操作的开发者,如果你要长期运行一个关键业务,我更推荐纯命令行加systemd,因为宝塔本身也会占用一部分内存。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/695983.html

赞 (0)
戴尔T110服务器怎么装Win7,安装失败怎么办?
上一篇 2026年9月28日 05:30
华为tm210服务器多少钱一台,参数配置及报价怎么样?
下一篇 2026年9月28日 05:44

相关推荐

  • AI宠物识别在线怎么用?免费人脸识别技术精准吗,宠物识别在线免费吗,AI人脸识别如何提高精准度

    AI人脸识别与宠物识别在线:重塑身份认证与宠物管理的智能未来核心结论: 在线AI人脸识别与宠物识别技术正以前所未有的速度渗透日常生活与行业应用,其核心价值在于通过精准、高效、便捷的生物特征识别,彻底革新身份验证流程与宠物管理方式,为安全防护、个性化服务及宠物生态带来颠覆性变革,AI双模态识别的核心优势:精准、实……

    程序编程 2026年2月16日
    20800
  • 做副业挂机用哪款VPS最划算,哪个性价比高?

    对于副业挂机,最划算的选择是低配、稳定、价格便宜的海外VPS,年付20-30美元左右的套餐足以满足大多数脚本和监控任务,具体服务商可根据项目延迟要求选择美西或欧洲节点,挂机副业对VPS的核心需求是什么副业挂机通常指运行自动脚本、网页点击、商品监控、轻量矿池或数据采集任务,这类任务对CPU和内存要求不高,但需要长……

    2026年7月28日
    600
  • 戴尔r530只有一根内存怎么插,服务器内存插槽图解

    戴尔R530服务器只有一个内存时,务必安装在A1插槽(CPU1通道0的DIMM_A1),开机即可被系统识别,无需额外设置,很多刚接触服务器维护的朋友,拿到一台只有单根内存的R530,面对主板上密密麻麻的24个内存插槽,确实容易犯晕,插错了位置,轻则报警无法开机,重则造成硬件识别异常,这篇内容就专门掰扯清楚单根内……

    2026年8月23日
    300
  • 钱包节点热备切换如何保持会话不中断,区块链节点故障会丢币吗

    钱包节点热备切换时的会话保持方案,核心思路是在切换前完成状态同步,切换时通过VIP漂移和连接级会话保持让客户端无感,切换后靠业务层重试兜底,三者缺一不可,很多团队做热备只盯着主备节点的数据一致性,结果切换一发生,客户端全部掉线,交易直接中断,真正的会话保持,要在网络层、节点状态、业务逻辑三个层面同时设计,为什么……

    2026年9月12日
    300
  • AIoT是什么意思?AIoT应用场景有哪些

    AIoT即人工智能物联网,是将AI的“大脑”与IoT的“感官”深度融合,让设备从被动连接走向主动智能的核心技术体系,过去我们谈论物联网,更多关注的是“连接”,比如家里的智能灯泡能用手机开关,智能门锁能远程开锁,这解决了“能不能连上”的问题,但到了2026年,单纯的连接已经无法满足需求,现在的核心痛点在于“理解……

    2026年6月14日
    3000
  • 服务器ESC登录不了怎么办,服务器ESC登录失败常见原因及解决方法

    服务器ESC登录:高效、安全、稳定的远程运维核心入口在云服务器运维实践中,服务器ESC登录是运维人员进入系统的第一道关键门户,其操作效率与安全性,直接决定业务连续性与数据防护水平,本文基于大量生产环境经验,系统梳理ESC登录的底层逻辑、主流方式、风险防控与最佳实践,助您构建高可靠远程运维体系,为什么ESC登录是……

    2026年4月14日
    7300
  • ASP.NET如何实现高并发抢红包? | ASP.NET抢红包开发教程

    ASP.NET抢红包高并发系统构建指南准确回答:构建高性能ASP.NET抢红包系统的核心在于采用分布式架构(如Redis分布式锁)、异步处理机制、数据库优化(预分配库存+事务控制)及严格的安全防护,确保高并发下红包金额精确分配、系统稳定且公平,红包业务的核心技术挑战与解决思路超发问题:高并发下红包总额可能被超额……

    2026年2月11日
    14800
  • 高端服务器有哪些优势,企业如何选购高性能服务器?

    架构、性能与应用场景在现代数字化基础设施中,高端服务器是支撑企业核心业务、大数据处理及人工智能算力的基石,与普通服务器相比,高端服务器在可靠性、可用性、可扩展性(RAS特性)以及计算密度方面有着质的飞跃,高端服务器的核心特征高端服务器的设计目标是应对极端负载和关键任务,其核心特征包括:极致的计算性能:通常采用最……

    2026年7月14日
    700
  • 广州网站建设工作室哪家好?广州建站公司怎么选

    在2026年数字化转型深水区,选择广州网站建设工作室的核心价值在于:以定制化技术底层与深度商业逻辑,为本土企业构建具备高转化率与强获客能力的超级网络门户,2026网站建设新范式:为何企业更需要定制化工作室模板建站的衰亡与定制化崛起根据中国互联网络信息中心(CNNIC)2026年最新报告,超过82%的用户会因网站……

    2026年4月28日
    6600
  • 服务器cpu四路是什么意思?四路服务器CPU性能如何

    四路服务器架构是企业级计算密集型任务的性能基石,其核心价值在于通过多处理器并行协同,突破单路或双路系统的算力天花板,实现海量数据吞吐与高并发处理的极致平衡,对于核心业务依赖数据库、虚拟化或高性能计算的企业而言,四路架构不仅是硬件堆叠,更是保障业务连续性与未来扩展性的战略选择,核心结论:四路架构是关键业务场景的……

    2026年4月2日
    11200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注