合普知识库
柔彩主题三 · 更轻盈的阅读体验

云服务器上运行Java应用的实用指南

发布时间:2025-12-15 19:03:57 阅读:332 次

在如今的开发环境中,把Java程序跑在云服务器上已经成了家常便饭。不管是公司的小型后台服务,还是个人做的练手项目,往云服一扔,外网随时能访问,方便得很。

选对系统和环境

大多数云服务商默认提供Linux系统镜像,比如CentOS、Ubuntu这些。装Java环境时,建议用OpenJDK,省事还免费。比如在Ubuntu上,直接一条命令就行:

sudo apt update && sudo apt install openjdk-17-jdk -y

装完检查一下版本,确认环境变量JAVA_HOME也设好了,避免后面启动报错。

上传和运行Java程序

写好的jar包,比如myapp.jar,可以用scp命令传到云服:

scp myapp.jar user@your-server-ip:/home/user/

登录服务器后,进目录运行:

java -jar myapp.jar

如果想让它在后台一直跑,加个&或者用nohup更稳妥:

nohup java -jar myapp.jar > app.log 2>&1 &

开放端口别忘了

Java服务通常监听8080或别的端口,但刚开的云服防火墙默认是关着的。得去控制台安全组里,把对应端口打开。不然你程序明明跑起来了,外网就是连不上,干着急。

小问题常见处理

有时候启动报错“无法绑定到端口”,可能是之前进程没杀干净。查一下:

ps aux | grep java

找到对应的PID,kill掉再重试。另外内存不够也会出问题,尤其是低配机器跑Spring Boot这种大块头,可以调小堆内存试试:

java -Xms128m -Xmx256m -jar myapp.jar

有次我朋友部署一个定时任务服务,结果第二天发现停了。后来才知道没用systemd托管,断ssh连接后进程被系统回收了。改成服务方式管理就稳多了。

让服务更可靠

手动启动适合临时测试,长期运行建议写个systemd服务文件。比如创建/etc/systemd/system/myapp.service

[Unit]
Description=My Java Application
After=network.target

[Service]
Type=simple
User=appuser
ExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar
Restart=always

[Install]
WantedBy=multi-user.target

启用后就能用systemctl start myapp来管理,开机自启也安排上了。

云服跑Java没那么玄乎,就跟在家开电脑差不多,只是换了个地方。只要你清楚每一步在干啥,出了问题也能顺藤摸瓜找原因。多试几次,自然就熟了。