故事是这样的,前几天固态硬盘到了之后决定重装系统,电脑换上固态后装好Linux后,直接将原来机械硬盘中的JDK, Tomcat, Intellij IDEA拷贝过来,简单的配置了一下环境变量,java -version没有任何问题,于是就开始修改之前的LetChat源文件。

发现问题

待我从IDEA中打开源目录,配置好Tomcat,运行之后,出现了JSP无法编译的问题,开始我简单的认为是运行配置问题,于是换了另一个项目,正确打开首页,遂配置没问题。

JSP?

一般JSP无法编译,会报出JSP源码的多少多少行,但是这次却并没有报源码问题,只是简单的说JSP无法编译,于是将原来的JSP文件修改为简单的Hello World,仍然无法编译。 排除JSP的问题。

Tomcat?

IDEA配置没有问题,jsp没有问题,只剩下Tomcat了,手动cd到Tomcat目录下,./start.sh运行之后,所有的Webapps正常工作,流畅的一匹。 舍友说Tomcat运行需要配置环境变量等东西,然而我实在不知道这个环境变量有什么用,但还是照着配置一下,然并卵。 最后我实在不知道哪里的问题了,遂准备重装Tomcat,从Apache下载压缩包之后,解压到Applications(自己建立的)目录下

cd bin
./startup.sh //启动

Tomcat启动未报异常,但是无论如何都无法从浏览器访问,遂

./shutdown.sh
sudo ./shutdown.sh

发现Tomcat正常运行。 很诡异,我以前的Tomcat运行是不需要root权限的。但是我并没有多想,觉得可能是Tomcat版本升级后的更改。 在IDEA中重新配置Tomcat目录后,这次直接无法运行,报一堆地球绕着太阳转的SB错误。

Linux权限?

再次回到tomcat目录下,这里开启tomcat需要root权限,为什么,灵光一闪,我突然想起来好像第一次安装tomcat的时候直接将整个目录chmod -R 777了,所以需要root权限是正确的。这里有问题。 回到以前的tomcat目录下,但是重装系统之后,帐号不一样,权限也变了,至于中间到底发生了什么,我TM也懒得知道,我直接一个chmod -R 777命令,重新打开IDEA,编译运行,没毛病啊。

一个JSP无法编译的问题扯到了Linux权限上,有些东西真的像蝴蝶效应一样。不得不说找Bug的过程是乏味的,但是当解决一个Bug之后,真的是