java9 tomcat_java9启动tomcat9闪退

最近由于Java开发环境由eclipse换成idea,发现了一些很奇特的问题。遂写下来和大家分享下。

开发使用环境为(64位版)idea2017.3月版本+jdk9+tomcat9,发现之前配置好的tomcat不能使用了。

先说方法:将jdk从版本9更换为jdk8。如果有兴趣接着往下看即可。

排错过程如下:

之前eclipse使用的是32为的tomcat7,先将tomcat7换成64位后发现tomcat还不能正常使用,于是将tomcat更换成最新版本tomcat9。发现使用cmd命令启动tomcat安装目录/bin/startup.bat还是无法启动tomcat。

可以右键点击startup.bat,编辑,在文本的最后敲上pause,保存后重新运行startup.bat,这时候窗口不会再一闪而过,而是停留在桌面上(调试成功,把pause去掉即可)。

8dabd9c72e835e5ba717bb6510651f73.png

再次打开startup.bat文件会出现如下信息。

5adda0d743b2eb8b88fd011e7966782f.png

首先排除如下问题:tomcat的环境变量配置问题。结论:tomcat的环境变量在运行的时候就自动配上了。(原因在最后)。

接着考虑如下问题:端口问题(由于没有报错,所以这里不写,仅作提醒)、环境变量中path,Java的环境变量是不是放在最前面。另外可以在startup.bat文件的第一行后面添加一句话:set JAVA_HOME=[jdk安装目录]D("[ ]"去掉)。如图

f8f2df99218911681ee5bef6f09d24ef.png

再次使用cmd命令启动startup.bat文件后会出现很多信息,如图

bb44168cbdd1c48877b0ac7c71b8418b.png

之后在浏览器涨输入“http://localhost:8080/”发现还是不能启动tomcat服务器。

考虑如下问题:由于没有报错,是否是已经启动,却将tomcat服务关闭掉(由于这里没有出现类似问题,仅作提醒用)、或者是tomcat服务已经启动了,但是却没有正常启动、或者是之前配置有问题(已经排除)。这里重点考虑是否是没有正常启动,于是尝试使用cmd命令结束tomcat服务。在cmd命令界面中进入tomcat的bin目录,启动shutdown.bat文件,发现报错,欣喜若狂。因为终于报错了。如图

a50b744f937c9cf8b8630e5ed74412ab.png

发现是一个很简单的Java虚拟机的参数错误,于是按照传统方法更改之后(这里放一个传送门:虚拟机参数错误),再次使用shutdown.bat命令发现问题依然存在。发现问题没有那么简单。经过一番科学搜索之后,终于在Oracle官网找到了答案。(传送门:Oracle官网说明)如图

29b54cb1b6fa78d4542d2a763c2f13f0.png

chrome翻译如下:

8c963cbae7a170baa66ef0f33b506745.png

所以,我们尝试将jdk版本从jdk9更换到jdk8中,启动tomcat服务。

b4ace06ceb72b301943cc106bc936c29.png

ok大功告成,撒花。旁边的人拍了拍我的肩膀,上午干啥了,答曰:在启动tomcat服务

************分割线************

一、其实在idea中我们可以不用配置tomcat服务也可以正常进行Java Web开发,但是在配置JRebel for IntellIj之后会出现一个 错似曾相识的错误,如图:

3546a42d7dabbf6a999004d592a98c09.png

那么,我们配置完tomcat之后可以启动了吗?

答案是不能!如图:

c9d6322363dc0623b09a71b033f8c749.png

还是会出现:JRebel-JVMTI [ERROR] Process finished with exit code 1,

打开日志发现。Application Server was not connected before run configuration stop, reason:Unable to ping server at localhost:1099

解决思路是:JRE_HOME没有配置,或编译器使用的jre版本是不正确的。还是同样的思路,我们在配置完JRE_HOME变量后,一定要配置一遍jre版本。如图

1530341879344774.png

二、解释下为什么配置tomcat的时候不用配置tomcat的环境变量,结论:

1、判断CATALINA_HOME是否为空,为空则把当前目录设为CATALINA_HOME的值;

2、再判断catalina.bat是否存在,不存在则把当前目录设为CATALINA_HOME的值;3、再判断环境变量下的catalina.bat是否存在,存在则调用bin目录下的“catalina.bat start”命令~

我们找到startup.bat文件,鼠标右键点击编辑,看到里面的内容:

最后,我用一句话来鼓励你我,这群在路上前进的人:“所有的伟大,源于一个勇敢的开始”。

打完收工,有问题欢迎留言。转载要征得同意哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值