1、连接到你的云主机。
2、 确保云主机上安装了Java 运行环境 (JRE)。
3、 将你的 Jar 包上传到云主机。
4、运行 Jar 包。
5、(可选) 保持程序在后台运行,并管理进程。
通常使用 SSH 协议进行连接。
Windows 用户可以使用 PuTTY 或 Windows Terminal / WSL 中的ssh 命令。
macOS / Linux 用户直接打开终端使用ssh 命令。
连接命令格式:
ssh username@your_server_ip
username你的云主机操作系统用户名,例如root,ubuntu,ec2-user 等。
your_server_ip你的云主机的公网 IP 地址。
ssh root@123.123.123.123
然后输入密码(如果使用密钥登录,可能需要指定密钥文件,如ssh -i /path/to/your-key.pem username@ip)。
第二步:安装 Java 环境 (如果尚未安装)
你的 Jar 包需要特定版本的 Java 才能运行,请先确认你的 Jar 包需要的 Java 版本(如 Java 8, 11, 17 等)。
1、更新软件包列表:
    sudo apt update        # 适用于 Ubuntu/Debian
    # 或
    sudo yum update        # 适用于 CentOS/RHEL2、安装 Java:
安装 JRE (Java Runtime Environment) - 仅用于运行程序
        # 安装 OpenJDK 11 JRE (推荐)
        sudo apt install openjdk-11-jre   # Ubuntu/Debian
        sudo yum install java-11-openjdk   # CentOS/RHEL安装 JDK (Java Development Kit) - 包含 JRE,如果需要编译或其他工具
        sudo apt install openjdk-11-jdk    # Ubuntu/Debian
        sudo yum install java-11-openjdk-devel # CentOS/RHEL3、验证安装:
安装完成后,通过以下命令检查版本,确认安装成功:
    java -version输出应类似:
    openjdk version "11.0.19" 2023-04-18
    OpenJDK Runtime Environment (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1)
    OpenJDK 64-Bit Server VM (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1, mixed mode, sharing)有几种常见方法:
方法 A:使用 SCP 命令 (命令行,最常用)
在你本地电脑的终端中执行,而不是在云主机的 SSH 会话中。
scp /path/to/your/local/file.jar username@your_server_ip:/path/on/server/
将本地的app.jar 上传到云主机的/home/ubuntu/ 目录:
scp ./app.jar ubuntu@123.123.123.123:/home/ubuntu/
方法 B:使用 SFTP 客户端 (图形化界面)
使用 FileZilla, WinSCP 等工具,连接方式与 SSH 类似,使用主机 IP、用户名和密码/密钥,然后拖放文件即可。
方法 C:直接下载
如果你的 Jar 包已经在互联网上(如 GitHub Releases, 对象存储等),可以直接在云主机上使用wget 或curl 下载。
wget https://example.com/path/to/your-app.jar
上传后,在云主机的 SSH 终端中,进入 Jar 包所在的目录。
最简单的前台运行:
java -jar your-app.jar
这时程序会在前台运行,输出日志会直接打印在终端上。一旦你关闭 SSH 窗口,程序就会停止。
直接使用java -jar 会随着 SSH 会话的结束而终止,因此我们需要使用一些方法来让它在后台持续运行。
方法一:使用nohup 和& (简单快速)
nohup 命令可以让进程忽略挂断信号(SSH 断开时发出的信号),& 让进程在后台运行。
nohup java -jar your-app.jar > output.log 2>&1 &
nohup保证进程不会随着终端关闭而退出。
> output.log将标准输出重定向到output.log 文件。
2>&1将标准错误(2)也重定向到标准输出(1)所在的地方(即同一个日志文件)。
&在后台运行。
查看输出和日志:
tail -f output.log # 实时查看日志尾部
关闭进程:
1、 找到进程 ID (PID):
    ps aux | grep java2、 使用kill 命令终止进程:
    kill <PID>方法二:使用systemd 创建系统服务 (生产环境推荐)
这是最专业、最可靠的方法,它可以实现开机自启、自动重启、集中管理日志等。
1、创建一个服务配置文件,例如myapp.service:
    sudo vim /etc/systemd/system/myapp.service2、写入以下配置内容(根据你的实际情况修改):
    [Unit]
    Description=My Java Application  # 服务描述
    After=syslog.target network.target # 在网络就绪后启动
    [Service]
    User=ubuntu                       # 运行此服务的用户,建议使用非root用户
    ExecStart=/usr/bin/java -jar /home/ubuntu/your-app.jar # 启动命令的绝对路径
    SuccessExitStatus=143
    Restart=always                    # 总是自动重启
    RestartSec=10                     # 重启前等待10秒
    # 日志配置 (可选)
    StandardOutput=journal
    StandardError=journal
    [Install]
    WantedBy=multi-user.target        # 多用户模式下启用3、重新加载 systemd 配置:
    sudo systemctl daemon-reload4、启动服务并设置开机自启:
    sudo systemctl start myapp    # 启动服务
    sudo systemctl enable myapp   # 启用开机自启5、管理服务:
    sudo systemctl status myapp   # 查看服务状态和最新日志
    sudo systemctl stop myapp     # 停止服务
    sudo systemctl restart myapp  # 重启服务
    sudo journalctl -u myapp -f   # 实时查看服务的日志如果你的 Jar 包是一个 Web 应用(如 Spring Boot),监听了某个端口(如 8080),你还需要在云服务商的控制台配置安全组规则,放行该端口的入站流量,否则无法从外网访问。
在阿里云、腾讯云、AWS 的控制台,找到你的云主机实例关联的安全组,添加一条规则:
类型自定义 TCP
端口范围8080 (或你的应用端口)
源0.0.0.0/0 (允许所有IP访问,或设置为特定IP更安全)
| 场景 | 推荐方法 | 命令示例 | 
| 临时测试 | 前台运行 | java -jar app.jar | 
| 简单后台运行 | nohup | nohup java -jar app.jar > log.log 2>&1 & | 
| 生产环境 | systemd 服务 | sudo systemctl start myapp | 
对于正式项目,强烈推荐使用systemd 方式,它能提供最完善的服务管理功能。
文章摘自:https://idc.huochengrm.cn/zj/15959.html
评论
吉文惠
回复云主机运行Jar包,需将Jar包上传至主机,配置Java运行环境,使用命令行运行`java -jar 包名.jar`启动程序,确保依赖库和配置正确。