当前位置:首页 > 云服务器

Java在云服务器上快速搭建运行环境的方法

游戏科技网2026年09月14日 21:49云服务器10
描述:云服务器运行Java应用必须安装JDK而非JRE,正确配置JAVA_HOME,显式设置JVM内存参数,开放安全组及防火墙端口。Java 运行环境必须装 JDK,不是 JRE云服务器上运行 Java 应用(比如 Spring Boot jar),只装 jre 是不够的——编译、打包、调试、甚至某些运行…
云服务器运行Java应用必须安装JDK而非JRE,正确配置JAVA_HOME,显式设置JVM内存参数,开放安全组及防火墙端口。

Java在云服务器上快速搭建运行环境的方法

Java 运行环境必须装 JDK,不是 JRE

云服务器上运行 Java 应用(比如 Spring Boot jar),只装 jre 是不够的——编译、打包、调试、甚至某些运行时反射操作都依赖 javactools.jar(JDK 9+ 合并进 lib/classes.jar)。很多一键脚本或镜像默认装的是 openjdk-17-jre-headless,直接跑 java -version 看似正常,但执行 javac 会报 command not found,后续构建或热部署失败。

  • Debian/Ubuntu 推荐安装:sudo apt install openjdk-17-jdk-headless-headless 表示无图形界面,适合服务器)
  • CentOS/RHEL 8+:用 dnf install java-17-openjdk-develdevel 包含开发工具链)
  • 验证是否完整:

    1

    java -version && javac -version

    两行都应输出版本号

JAVA_HOME 必须显式设置且路径要对

很多 Java 应用(尤其是 Spring Boot、Maven、Gradle)启动时会读取 JAVA_HOME 环境变量。云服务器上即使 java 命令可用,若 JAVA_HOME 指向错误目录(比如指向 /usr/lib/jvm/java-17-openjdk-amd64/jre),会导致类加载失败或 UnsupportedClassVersionError

  • 先查真实路径:readlink -f $(which java),结果类似 /usr/lib/jvm/java-17-openjdk-amd64/bin/java,则 JAVA_HOME 应设为 /usr/lib/jvm/java-17-openjdk-amd64
  • 写入全局配置(推荐):

    1

    echo export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 | sudo tee -a /etc/profile.d/java.sh

    ,再 source /etc/profile.d/java.sh
  • 不要用 update-alternatives --config java 后自动推导 JAVA_HOME,它不保证变量同步

Spring Boot jar 直接运行,但别漏掉 -D 参数和内存限制

上传好 app.jar 后,直接 java -jar app.jar 能跑通,但生产环境极易出问题:默认堆内存太小(通常 1/4 物理内存)、没有指定配置文件位置、日志输出到控制台无法持久化。

Java在云服务器上快速搭建运行环境的方法
Javascript Sdk

用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。

下载
  • 最小可用命令:

    1

    nohup java -Xms512m -Xmx1024m -Dspring.config.location=file:/opt/app/config/ -jar /opt/app/app.jar > /opt/app/logs/stdout.log 2>&1 &

  • -Xms/-Xmx 必须显式设,否则 JVM 可能因内存抖动被 OOM killer 杀掉
  • -Dspring.config.location 指向外部配置目录,避免每次更新 jar 都要重打包
  • nohup + & 启动后,检查进程:ps aux | grep app.jar,确认是 java 进程而非 sh 进程在跑

别跳过防火墙和安全组端口放行

应用明明启动成功(日志里出现 Started Application in X seconds),但从本地浏览器打不开,大概率是云平台的安全组没开对应端口,或者服务器本地防火墙拦截了。

立即学习Java免费学习笔记(深入)”;

  • Spring Boot 默认端口是 8080,检查是否监听:ss -tuln | grep :8080(不是 netstat,新版系统默认没装)
  • 阿里云/腾讯云等控制台里,确认安全组规则已放行 TCP 8080(或你自定义的端口)
  • 服务器本地防火墙(如 ufwfirewalld)也要开:sudo ufw allow 8080sudo firewall-cmd --permanent --add-port=8080/tcp
  • 如果用反向代理(Nginx),确保 Nginx 配置里 proxy_pass http://127.0.0.1:8080,且 Spring Boot 的 server.forward-headers-strategy=framework(处理 X-Forwarded-* 头)

Java 环境本身不复杂,但云服务器上每个环节都卡在“默认值不适用生产”——JDK 缺组件、JAVA_HOME 指错、内存不设、端口不通,这些问题单独看都很浅,组合起来就让人反复重启查日志。真正省时间的做法,是把上面四步做成初始化脚本,每次新机器一键跑完。

“Java在云服务器上快速搭建运行环境的方法” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

1元买走一台云服务器,这种天上掉馅饼的事存在吗?

1元买走一台云服务器,这种天上掉馅饼的事存在吗? 那天,我在咖啡馆里刷手机,偶然看到一个广告:“只需1元,就能买走一台高性能云服务器!容量无限,稳定快速,适合创业和学习。”我的心跳突然加速了。作为一个…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…