tomcat服务器运行java文件之版本错误

困扰了两天的tomcat运行servlet错误,没有你做不到只有你想不到,勇于尝试是成功的必要条件之一:
tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误
没错如你所见这错误真高大尚,500是404再次回车后的结果,原因仔细看画笔部分:
红色:无法初始化类xxxxx
蓝色:这个类被xxx版的java编译,这个只能识别到xxx版本的.class类文件
由此可得,是版本的问题,但是什么的版本呢,是eclipse还是jdk呢,开始我认为是路径错误:
tomcat服务器运行java文件之版本错误
仔细比对,没毛病,包括名字;
后来我以为是配置文件出了问题:
tomcat服务器运行java文件之版本错误
很明显,对比了n边,还是没有错误,
不仅如此,我还对比了代码,代码放的位置,还是不行。
光这些我就翻看了老师的录屏不下5遍,最终,我来到了这里:
tomcat服务器运行java文件之版本错误

因此初步判定,是版本问题,我就开始怀疑jdk的配置:
tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误

tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误
以上这些jdk位置都是错误的,由于点了打开键导致的,正确的位置通过复制地址栏获得。
下图,这个是1.2版本的,我用的是1.8,切换过去就可以了,这里设置后tomcat就会指定用这个版本的jdk。
tomcat服务器运行java文件之版本错误

这步就是罪恶的根源,原本认为tomcat运行servlet是与eclipse无关的,eclipse只是提供了个写代码的环境,但你别忘了jdk负责开发环境,也说明它与编译有关,我们要用到它编译得到的.class故这是我们最容易忽略的问题原理,这里用的jdk要与tomcat指定的一样,这是一种统一,一种对应。有点常识就会知道,不统一可能会对,这涉及到兼容性,但统一一定会对,至少相对不统一而言。
tomcat服务器运行java文件之版本错误

以上这两幅图对应使用的执行环境和兼容性的对应,因为我们不在这里执行,所以无伤大雅,但要注意的是,每种执行环境都有与之完美匹配的jdk版本,我原先用的是SE-12,只能对应12.0版本,后来为了与tomcat对应,用了1.8,1.8最好的对应是SE-11

注意,这里才是最最最重要的:
由于JavaSE-12不兼容jdk1.8,所以原来的JavaSE-12在这里没有包括jdk1.8在里面,故编译得到的.class文件不符合用jdk1.8提供的开发环境所获得的.class文件,因此改为JavcaSE-11,它已经将jdk1.8包括在里面了

tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误
tomcat服务器运行java文件之版本错误