讲师中心 微信公众号
AI工具推荐 视频效率加速

在Java中如何在服务器上部署运行环境_Java生产环境搭建解析

云强姑娘_8839

云强姑娘_8839

发布时间:2026-02-02 15:04:02

|

224人浏览过

|

来源于php中文网

原创

生产环境Java部署必须严格校验JDK版本兼容性、Tomcat类加载顺序、JVM参数配置及安全端口管理。需确保java/javac版本一致,Spring Boot 3.x要求JDK 17,log4j-core等依赖需同步升级;Tomcat中jar应按层级规范放置,避免WEB-INF/lib冲突;JVM堆内存须显式设定,禁用默认端口与明文管理界面,并彻底清理残留旧版jar和错误JAVA_HOME路径。

在java中如何在服务器上部署运行环境_java生产环境搭建解析

Java生产环境必须确认JDK版本与应用兼容性

很多线上问题根源是JDK版本错配——比如用JDK 17编译的record类,在JDK 8上直接抛java.lang.UnsupportedClassVersionError。生产环境不能只看“有JDK”,而要看java -version输出是否匹配构建时的source和target参数。

  • Spring Boot 3.x 要求最低 JDK 17,老项目升级前必须验证所有依赖(如log4j-core 2.17+才完全支持JDK 17)
  • 使用javac -version和java -version分别检查编译器与运行时版本,二者不一致极易埋雷
  • 推荐在/opt/java下并行安装多个JDK,并通过update-alternatives --config java切换,避免全局污染

Tomcat部署WAR包时CLASSPATH加载顺序很关键

Tomcat的类加载机制不是简单“把jar丢进lib就行”。它按Bootstrap → System → Common → Catalina → Shared → Webapp层级加载,WEB-INF/lib下的jar优先级最高——这意味着你放进去的slf4j-simple.jar会覆盖$CATALINA_HOME/lib里的slf4j-api.jar,导致NoClassDefFoundError。

  • 禁止在WEB-INF/lib中打包javax.servlet-api或tomcat-jdbc等容器已提供的API
  • 数据库驱动统一放在$CATALINA_HOME/lib,而非每个WAR里重复打包,便于连接池统一管理
  • 若需隔离日志实现(如Logback),确保WEB-INF/lib中只有logback-classic.jar和logback-core.jar,删掉冲突的slf4j-log4j12.jar

启动脚本必须显式指定JVM参数而非依赖默认值

Linux服务默认以root用户启动,但JVM堆内存不设上限时,-Xms和-Xmx会取物理内存的1/4,一台64G机器可能直接分配16G——这会挤占系统缓存、触发频繁GC甚至OOM Killer杀进程。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 在$CATALINA_HOME/bin/setenv.sh中写死参数:
    export JAVA_OPTS="-Xms2g -Xmx2g -XX:+UseG1GC -Dfile.encoding=UTF-8"
  • 务必添加-Duser.timezone=GMT+8,否则new Date()在日志或定时任务中可能跨天错乱
  • 禁用-server(JDK 8u212+已废弃),改用-XX:+AlwaysPreTouch提前触碰内存页,减少首次请求延迟

生产环境禁止使用默认端口和明文管理界面

刚解压的Tomcat默认开放8005(shutdown端口)、8080(HTTP)、8009(AJP),且manager应用未设密码——这等于把服务器大门敞开。

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

  • 修改$CATALINA_HOME/conf/server.xml:将port="8005"改为非标准端口(如8015),并在shutdown属性加随机字符串
  • 注释掉conf/tomcat-users.xml中默认的admin角色,新增带manager-gui权限的独立用户,并用digest.bat/sh加密密码
  • 如无需远程管理,直接删掉webapps/manager和webapps/host-manager目录,比“改密码”更彻底

真正麻烦的从来不是装不上,而是某个log4j-core-2.14.1.jar藏在某个子模块的lib目录里没被清理干净,或者JAVA_HOME指向了/usr/bin/java这个符号链接而非真实JDK路径——这些细节不会报错,但会让问题在凌晨三点突然爆发。

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

805

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

304

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

489

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

285

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

349

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

581

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

322

2024.02.23

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn