阿里云jar包怎么部署?上传到运行的关键步骤

Java 项目在本地跑通之后,下一步通常是打成 jar 包交给服务器运行。很多人卡在代码之后:jar 上了云,该怎么跑,跑在哪一层,都还没想清楚。阿里云提供 ECS 云服务器、容器服务、函数计算等几种承载方式,先选对方向,后面的步骤会清楚很多。

阿里云jar包怎么部署?上传到运行的关键步骤

这篇文章以阿里云 jar 包部署为主线,按实际操作顺序讲:打包、上传、准备运行环境、进程守护,最后是常见报错。适合刚开始把 Java 服务迁到云上的开发者。

一、jar 包在阿里云上通常怎么运行

第一次部署时,最容易搞不清 jar 到底跑在哪一层。大致有三种做法。

  • ECS 云服务器直接运行。买一台 ECS,装好 JDK,上传 jar,用命令行启动或交给 systemd 托管。配置自由度最高,适合传统单体应用,但系统更新、补丁和监控都要自己管。
  • 容器化部署。写 Dockerfile 把 jar 打进镜像,推送到阿里云容器镜像服务 ACR,再部署到 ACK(容器服务 Kubernetes 版)或 Serverless 容器。前期要学的东西多一些,但扩容、回滚和多环境交付会顺很多,适合有多个服务需要统一管理的团队。
  • 函数计算或 Serverless 应用引擎。按调用量计费,不用管服务器。适合请求波动大或以事件触发为主的服务。长时间运行、依赖本地状态的程序就不太适合放在这里。

小项目或个人项目,用 ECS 加 systemd 基本够用。服务多了、需要弹性伸缩,再考虑容器化。

二、实操:把 Spring Boot 的 jar 部署到 ECS

下面以一个叫 order-service 的 Spring Boot 项目为例,走一遍最基础的 ECS 部署流程。

1. 本地打包

在项目根目录执行下面的 Maven 命令,生成可执行 jar。

mvn clean package -DskipTests

产物在 target 目录下,文件名类似 order-service-1.0.0.jar。跳过测试适合在已经验证过的代码上打包,正式发布前最好先完整跑一遍测试。如果 jar 无法用 java -jar 启动,先检查 pom.xml 里有没有配置 spring-boot-maven-plugin,这是最常见的漏配。

2. 上传到服务器

可以用 scp 直接上传,也可以通过阿里云控制台的远程连接功能上传文件。scp 命令这样写。

scp target/order-service-1.0.0.jar root@你的公网IP:/opt/app/

这里用 root 只是为了演示。实际部署时,建议先建一个专门运行应用的用户,把 jar 放到它有权限的目录,让服务不以 root 身份长期运行。应用出问题时,影响范围也会小一些。

3. 安装运行环境

在 ECS 上安装与本地编译时一致的 JDK 版本,比如 JDK 17。装完执行 java -version 确认版本号。版本对不上,后面的报错会很绕。

4. 用 systemd 托管进程

用 nohup 启动最省事,但服务器重启或进程异常退出后,它不会自己拉起来。更稳的做法是新建 systemd 服务文件,比如 /etc/systemd/system/order-service.service,在里面把 ExecStart 设为 java -jar 加 jar 的绝对路径,并设置 Restart=always。写好后执行 systemctl daemon-reload,再用 systemctl enable 和 systemctl start 启动,就能实现开机自启和异常重启。

三、上云后的配置与安全

jar 上了服务器,有几处细节很容易被忽略,但它们直接影响稳定性和安全。

  • 敏感配置不要写进 jar。数据库密码、AK/SK 这类信息打进包里,拿到 jar 的人就能看到。改用环境变量或配置中心注入。
  • 安全组只放必要端口。业务端口按需开放。SSH 这类管理端口,只允许固定的办公 IP 或跳板机访问,别直接对全网开放。
  • JVM 参数按内存设置。-Xms 和 -Xmx 要根据 ECS 的实际内存来定,给操作系统和其他进程留出空间。堆开得太满,高峰期容易被系统杀掉。
  • 日志落盘并切分。指定日志目录,按大小或日期滚动。需要集中检索时,再接入阿里云日志服务 SLS。

四、常见报错怎么查

实际部署中,下面几类问题出现得最多。

  • 提示 no main manifest attribute。多半是打包时没有使用 Spring Boot 插件,生成的 jar 无法直接运行。回到第一步检查 pom.xml。
  • UnsupportedClassVersionError。本地用 JDK 17 编译,服务器却装了 JDK 8。统一两边的 JDK 版本即可。
  • 端口访问不了。先在服务器上执行 ss -lntp,确认应用是否真的在监听对应端口。确认服务已经启动,再去查安全组是否放行。两步分开查,能少走弯路。
  • 进程莫名消失。用 dmesg 查看有没有 OOM Killer 的记录。如果有,说明内存被系统强制回收了,调低堆内存或升级实例规格都是办法。

五、部署之后

在 ECS 上跑通一次,整个流程就清楚了。打包、上传、装运行环境、交给 systemd 托管,再把配置和安全收紧。业务量上来后,再逐步迁到容器或 Serverless,比一开始就上复杂方案更稳。

文中的命令、路径和端口都需要按自己的项目调整。正式上线前,最好先在测试环境完整走一遍,尤其是服务器重启和进程异常退出后的恢复过程。

赞 (0)
阿里云上海代理商签约前,资质、售后和开票要先看清
上一篇 2026年11月1日 上午1:50
阿里云品牌是怎么从淘宝技术部走出来的?
下一篇 2026年11月1日 上午1:51

相关推荐

  • 阿里云登录遇到问题?主账号、子账号分别怎么进

    很多人第一次接触阿里云登录,卡住的往往是这一步。主账号和子账号走的入口不同,安全要求也不同。这一步理顺了,后面买资源、部署服务、拉同事协作才不会反复返工。这篇先把账号类型讲清楚,再说登录步骤、常见问题和安全设置。 先分清两类账号 阿里云的账号大体分两种。一种是主账号,也就是注册时用的邮箱或手机号对应的那个账号。它对账户下所有资源和费用都有最高权限,是最需要保…

    2026年10月31日
  • 阿里云解析设置怎么填?添加记录的几个关键项

    刚买了域名,或者网站换了服务器,第一步通常就是改域名解析。最容易卡住的地方是记录类型不知道选哪个,主机记录填错,改完等半天网站还是打不开。阿里云解析的功能够用,但界面上的术语对新手不太友好。下面按实际操作顺序,把阿里云解析设置的关键项和常见坑讲清楚。 一、先认识几个字段 域名解析的作用,是把好记的 example.com 对应到服务器能识别的 IP 地址。访…

    2026年10月31日
  • 阿里云主页怎么找入口?从首页进控制台的路径

    很多人第一次用云服务,都是从阿里云主页开始的。页面信息多,入口分散,刚打开时容易不知道该点哪里。其实主页的结构不复杂,记住几个区域,基本就能找到要去的产品或控制台。下面按页面位置说明,并给出几种常见情况下的走法。 主页上的三个主要区域 顶部是导航栏,一般能看到产品、解决方案、定价、文档、支持这些分类。如果已经知道要用哪种服务,从这里进入最快。中间部分多是热门…

    2026年11月1日
  • 阿里云云盘挂载怎么操作,开机后如何自动挂载

    ECS 的系统盘通常不大。数据库文件、日志和业务上传的内容放在上面,很快就会写满。给实例加一块独立的数据盘,把业务数据单独放在一个目录里,系统和数据互不干扰,之后扩容和备份也更方便。下面以一台 Linux 实例为例,走一遍阿里云云盘挂载的流程,包括重启后仍能自动挂载的配置。 一、挂载前先确认三件事 动手前看一下这三点,能省去在控制台里找不到实例、或者挂到一半…

    2026年10月31日
  • 阿里云官方微博怎么关注才靠谱,哪些内容值得看

    线上服务突然变慢,控制台里的指标看不出什么,群里讨论半天也说不清问题出在哪一层。做云上业务的人大多碰到过这种时候。这时候,平台官方发出的信息通常比二手消息可靠,阿里云官方微博就是值得长期放在关注列表里的一个窗口。 为什么要关注官方账号 很多人把微博当资讯流,刷到什么看什么。对云服务用户来说,官方账号更像一个固定的信息入口。产品更新、服务公告、活动预告、技术分…

    2026年11月1日
返回顶部