详解在Linux中修改Tomcat使用的jdk版本
问题分析
- 由于部署个人项目使用了
openjdk11
,但是我之前安装的是jdk1.8
,jdk版本升级的后果就是,tomcat运行的时候报一点小bug(因为之前安装tomcat默认使用了系统的jdk版本) - 所以就想着把tomcat使用的jdk版本调回原来的,找了很多资料之后,决定在tomcat的运行文件中覆盖使用的jdk版本路径
- 需要注意的是,
openjdk11
没有jre目录,所以一定要注意将JRE_HOME=$JAVA_HOME/jre
中的jre删掉
详细步骤
- 检查tomcat安装目录下
/bin/catalina.sh
和/bin/setclasspath.sh
文件 - 分别在这两个文件的头部添加以下局部变量覆盖系统环境变量
export JAVA_HOME=/usr/soft/install/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/
export PATH=$PATH:$JAVA_HOME/bin
- 两个文件修改完成之后,在
bin
目录下执行./version.sh
,会打印出来jdk版本
- 还有点需要注意的是,tomcat如果运行不成功或者运行多个之后,可能会出现访问的问题,不要重复开重复关,检查配置都没有问题之后再去打开
查看tomcat是否在运行
ps -ef |grep tomcat
如果在运行,可以杀掉进程之后再重启kill -9 pid # pid为相应的进程号
- 最后再总结一下关闭和开启tomcat的命令,均在bin目录下执行
开启
./startup.sh
关闭./shutdown.sh
如何修复linux相关配置文件中的非法字符^M
- 因为tomcat的配置文件过长,直接在linux中使用
vim
命令修改属实比较痛苦,笔者直接将文件用 xftp 拉下来,直接在编辑器中修改,但是会导致文件中出现非法字符^M
^M
是windows下的断元字符,在linux中无法识别- 可以通过安装linux工具来处理,按顺序执行以下命令即可
- 安装工具包
yum install -y dos2unix
- 格式化文档
dos2unix (需要格式化的文档地址)
- 安装工具包
我是 fx67ll.com,如果您发现本文有什么错误,欢迎在评论区讨论指正,感谢您的阅读!
如果您喜欢这篇文章,欢迎访问我的 本文github仓库地址,为我点一颗Star,Thanks~
转发请注明参考文章地址,非常感谢!!!
详解在Linux中修改Tomcat使用的jdk版本的更多相关文章
- linux下修改tomcat使用的jdk版本
遇到一种情况,就是linux上好像掉文件了,JDK的目录下没有了,具体问题还不清楚,不过要赶紧修复,不能影响其他程序的运行. 结构重新安装了JDK,tomcat还是启动失败,看l启动日志发现没找到还是 ...
- 详解在Linux中安装配置MySQL
最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MySQL 安装环境 CentOS7 + MySQL5.7 下载安 ...
- 详解在Linux中安装配置MongoDB
最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MongoDB 说实话为什么会装MongoDB呢,因为之前因为公司 ...
- [linux]netstat命令详解-显示linux中各种网络相关信息
1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表 接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关-t ...
- [转]tomcat之一:指定tomcat运行时JDK版本
今天在做项目的时候,主管让我在本机上启动多个tomcat且指定不同的jdk环境.因为在企业的项目中个,对于同一个服务器中有多个jdk和tomcat,所以就需要手动指定不同的jdk. 在网上找了很多资料 ...
- tomcat之一:指定tomcat运行时JDK版本
tomcat作为日常开发的web应用服务器,给开发测试带来了很多便利,tomcat的运行依赖JDK的支持,在安装JDK时经常会配置环境变量:JAVA_HOME.CLASSPAT,且需要添加path变量 ...
- 详解在Linux系统中安装Tomcat
本文以在CentOS 7.6中安装Tomcat8.5为例进行安装,其他系统和版本都是大同小异的. 安装JDK 安装Tomcat之前,需要先安装JDK,可以参看之前的文章详解在Linux系统中安装JDK ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例
SSL握手通信详解及linux下c/c++ SSL Socket代码举例 摘自:http://www.169it.com/article/3215130236.html 分享到:8 发布时 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)
SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码) 摘自: https://blog.csdn.net/sjin_1314/article/det ...
- 详解WebService开发中四个常见问题(1)
详解WebService开发中四个常见问题(1) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
随机推荐
- node.js基于react项目打包部署到nginx中(Linux服务器)
1.首先进入React项目目录. 2.执行npm命令进行打包(生成dist包或build包). npm run build 3.将打包的静态文件放入nginx目录中(可以自己新创建一个目录,也可以放在 ...
- 还不知道怎么 Mock ,用这 6款工具!
以下是几个常用的国外可以mock测试的工具,供参考: MockServer: MockServer 是一个开源的 API mock 测试工具,提供了强大的模拟服务器和 mock 服务功能.MockSe ...
- Prism Sample 16-RegionContext
终于发现一个有趣的新知识了. 本例的核心是RegionContext,意思是一个区域的上下文.但与DataContext似乎并不相同. 先看一下整体思路. 在主窗体上只有一个Region: <G ...
- 知乎问题:如何说服技术老大用 Redis ?
这个问题很微妙,可能这位同学内心深处,觉得 Redis 是所有应用缓存的标配. 缓存的世界很广阔,对于应用系统来讲,我们经常将缓存划分为本地缓存和分布式缓存. 本地缓存 :应用中的缓存组件,缓存组件和 ...
- 这是一道非常有争议的题,我的分析如下: TCP/IP在多个层引入了安全机制,其中TLS协议位于______。 A.数据链路层 B.网络层 C.传输层 D.应用层
这是一道非常有争议的题,我的分析如下: TCP/IP在多个层引入了安全机制,其中TLS协议位于______. A.数据链路层 B.网络层 C.传输层 D.应用层 这道题选D吗?因为tls协议在osi七 ...
- 2020-12-13:用最少数量的线程,每个线程执行for的空循环,把cpu打满了。如果在for的空循环里添加打印输出函数,会把cpu打满吗?为什么?
福哥答案2020-12-13:不会.输出会进行io操作,相对于CPU的速度,这是一个非常缓慢的过程,所以CPU会有机会空闲下来.***[评论](https://user.qzone.qq.com/31 ...
- uni-app Pages.json配置
https://uniapp.dcloud.net.cn/collocation/pages.html pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径.窗口样式.原 ...
- Cypress 踩坑记 - DOM 遮挡
Cypress 是一个非常流行的测试工具,然而实际使用过程中发现一些问题,这里做些记录. 问题发现 在 Cypress 下 click 是非常常用的指令,然而在一些特殊场景下 click 并不能如想象 ...
- 2013年蓝桥杯C/C++大学A组省赛真题(振兴中华)
题目描述: 小明参加了学校的趣味运动会,其中的一个项目是:跳格子. 地上画着一些格子,每个格子里写一个字,如下所示: 从我做起振 我做起振兴 做起振兴中 起振兴中华 比赛时,先站在左上角的写着&quo ...
- 记一次处理挖矿程序引发的postgres 连接超时
近一段时间内发现自己的服务器总是警告被挖矿,然处理挖矿程序中也引发了许多其他的问题,也从中学到了其他的知识,趁今天未加班梳理一下便于巩固,记录日常 文章目录 一.查找进程 1.使用 ll /proc/ ...