如何把Java程序部署到服务器上实现公网访问?

将Java程序从本地开发环境迁移到云服务器上运行,是将其交付给用户的关键一步,这个过程涉及环境配置、文件传输和程序启动等多个环节,下面将详细介绍java程序怎么在服务器上运行的完整流程,帮助开发者顺利完成部署。

如何把Java程序部署到服务器上实现公网访问?

准备工作

在开始之前,请确保您已具备以下条件:

  1. 一台云服务器:您可以从阿里云、酷番云、AWS等主流云服务商处购买,操作系统推荐选择Linux发行版,如Ubuntu或CentOS。
  2. 一个可执行的Java程序:通常是一个打包好的.jar文件。
  3. SSH客户端:用于远程连接和管理您的云服务器,如PuTTY(Windows)或系统自带的终端(macOS/Linux)。

核心部署步骤

连接到云服务器

通过SSH连接到您的云服务器,打开终端或SSH客户端,输入以下命令(请将your_server_ip替换为您的服务器公网IP地址):

ssh root@your_server_ip

首次连接时会提示接受服务器的指纹,输入yes并按回车,然后输入您设置的服务器密码即可登录。

安装Java运行环境(JRE)

云服务器默认可能没有安装Java,要运行Java程序,必须安装Java运行环境(JRE),推荐安装OpenJDK,这是一个开源且广泛使用的Java实现。

对于基于Debian/Ubuntu的系统:

sudo apt update
sudo apt install openjdk-11-jre -y

对于基于CentOS/RHEL的系统:

sudo yum install java-11-openjdk -y

安装完成后,可以通过 java -version 命令验证是否安装成功。

上传Java程序到服务器

将本地打包好的.jar文件上传到服务器的指定目录,常用的方法有两种:

如何把Java程序部署到服务器上实现公网访问?

  1. 使用scp命令:在本地终端中执行以下命令,将文件上传到服务器的/home/目录下。

    scp /path/to/your/program.jar root@your_server_ip:/home/
  2. 使用FTP工具:如FileZilla、WinSCP等,通过SFTP协议连接服务器,然后像操作本地文件一样,直接将.jar文件拖拽到服务器目录中。

运行Java程序

上传完成后,在SSH终端中进入.jar文件所在的目录,使用以下命令启动程序:

java -jar program.jar

程序会在前台运行,如果您关闭SSH窗口,程序也会随之停止,这对于生产环境是不可接受的。


进阶:让程序在后台持续运行

要确保java程序怎么在云服务器上运行后能持续提供服务,即使您断开SSH连接,我们需要使用后台运行工具。

使用 nohup 和 &
这是最简单快捷的方法。nohup命令可以让程序忽略挂起信号,&符号则让程序在后台执行。

nohup java -jar program.jar &

执行后,程序会在后台运行,并将日志输出到当前目录下的nohup.out文件中。

使用 systemd 创建系统服务(推荐)
这是一种更专业、更稳定的方式,可以实现开机自启、自动重启等功能。

如何把Java程序部署到服务器上实现公网访问?

  1. 创建一个服务文件:

    sudo nano /etc/systemd/system/myapp.service
  2. 在文件中填入以下内容,并根据实际情况修改路径和用户:

配置项 说明
[Unit] 服务单元定义
Description=My Java App 服务的描述信息
After=network.target 在网络启动后启动
[Service] 服务配置
User=root 运行服务的用户
ExecStart=/usr/bin/java -jar /home/program.jar 启动命令,使用java的绝对路径和jar包的绝对路径
SuccessExitStatus=143 成功退出状态码
[Install] 安装配置
WantedBy=multi-user.target 在多用户模式下启用
  1. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable myapp.service  # 设置开机自启
    sudo systemctl start myapp.service   # 启动服务

您的Java程序将作为一个系统服务可靠地运行在云服务器上,通过systemctl status myapp.service可以查看其运行状态。


相关问答FAQs

为什么我直接用 java -jar 命令运行,关闭SSH窗口后程序就停止了?
答:当您通过SSH直接执行命令时,该命令会与当前的SSH会话绑定,SSH会话结束时,系统会向该会话下的所有进程发送一个“挂断信号”(SIGHUP),默认情况下这会导致进程终止。nohup命令的作用就是让程序忽略这个信号,而&符号则将程序放入后台执行,从而脱离当前会话,实现持续运行。

云服务器应该选择哪种配置来运行Java程序?
答:选择配置主要取决于您的Java程序的性质和预期负载。核心关注三个指标:CPU、内存(RAM)和磁盘,Java程序是内存消耗大户,JVM(Java虚拟机)本身就需要占用一定内存,因此内存是首要考虑因素,如果您的程序涉及大量计算(如数据分析、图像处理),则需要更强的CPU,如果程序需要存储大量文件或数据,则需要更大的磁盘空间,建议从小规格开始,根据实际监控的CPU和内存使用情况再进行弹性升级。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/13671.html

赞 (0)
上一篇 2025年10月18日 18:06
下一篇 2025年10月18日 18:14

相关推荐

  • 服务器空间年费多少钱一年,影响服务器空间价格的因素有哪些

    服务器空间年费并非单纯的“租赁成本”,而是企业数字化转型的核心投资回报率(ROI)指标,决定年费高低的根本因素并非服务商的定价策略,而是企业对资源配置的精准度、数据安全等级的要求以及架构扩展性的前瞻规划, 盲目追求低价会导致业务不稳定与数据丢失风险,而过度配置则会造成严重的资源浪费与资金积压,一个合理的服务器空……

    2026年4月6日
    02293
  • 服务器管理常见问题有哪些,服务器故障如何解决?

    服务器管理的核心在于预防优于治疗,通过建立标准化的监控体系、严格的安全策略以及完善的容灾机制,可以将90%的潜在风险扼杀在萌芽状态,高效的运维不仅仅是修复故障,更是对系统稳定性、安全性和性能的持续优化,确保业务连续性不受底层硬件或软件异常的影响,资源耗尽与性能瓶颈服务器性能下降是运维中最常遇到的问题,主要表现为……

    2026年2月25日
    02592
  • 服务器租用网站源码怎么选?服务器租用源码推荐哪个好

    选对源码,事半功倍;用错源码,后患无穷在当前云计算与Web服务快速迭代的背景下,服务器租用网站源码已不再是“能跑就行”的临时方案,而是企业数字化转型的基础设施级决策,选对源码,可降低30%以上的运维成本、缩短50%的上线周期;选错源码,则可能埋下安全漏洞、扩展瓶颈与兼容性隐患,本文基于酷番云服务超1,200家I……

    2026年4月14日
    02532
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 服务器端返回null是什么原因,如何解决服务器返回null问题

    服务器端返回null是开发与运维过程中最常见却又最隐蔽的“隐形杀手”,它直接指向了数据交互链路中的逻辑断裂或资源缺失,核心结论在于:null返回值并非简单的空数据,而是服务器端对请求的一种“无声拒绝”或“异常静默”,其背后往往隐藏着代码逻辑缺陷、数据库连接异常、权限配置错误或网络中间件拦截等深层问题, 解决这一……

    2026年4月5日
    03181

发表回复

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