假设我们已经在命令行里面把java文件编译成class文件了。然后把它布置到tomcat服务器上,则我们可以看到服务器的控制台上会出现以下信息
其中我们关心的一行是
严重: Exception invoking periodic operation:
java.lang.UnsupportedClassVersionError: FirstServlet2 : Unsupported major.minor version 52.0 (unable to load class FirstServlet2)
此时我通过浏览器访问原来在该文件夹里面我能访问的文件都会出现错误。
也就是说我存放了class文件的路径//localhost/linshaolong即我WEB-INF的外层文件夹下的所有文件都不能通过浏览器访问,初步断定是加了该class文件后导致整个文件夹都没有配置到服务器里面
然后我们回过头来看java.lang.UnsupportedClassVersionError这个错误,大致意思是不支持的calss文件版本错误。查了一下是高版本的JDK编译的java class文件试图在较低的版本的JVM上运行导致的错误。
通过java -version,我查到我的命令行的jdk版本是1.8.0-65
而打开我的myeclipse的配置服务器的JDK版本是jdk7.则可知是因为服务器运行的jdk版本太低导致部署不成功。
则此时我们有三种方法可以解决:
第一种方法:.找个jdk8以上的Myeclipse版本重新下载(闲的蛋疼)
第二种方法.把Myeclipse的编译环境和服务器的jdk环境都改成1.8
点add然后在弹出的界面中选Directory,选择自己当时安装java环境时的jdk版本。这样服务器运行的版本也和命令行的jdk版本一致。就ok了。
此时重新打开服务器就能部署成功jdk1.8.0_65的class文件。访问也没问题。
闲着也是闲着的同学可以在windows-Preferences在搜索栏中搜installed JREs
将jre环境配置成jdk1.8.0_65
这样用Myeclipse编译的class文件也是jdk1.8.0_65的了。
第三种方法.把java文件放到Myeclipse里编译一下。
也就是把java文件拖到项目里,保存一下,然后到对应存放class文件的文件夹找一下。(如果你一开始手动码的java文件是缺省包的,就要放在Myeclipse项目的缺省包下保存。)
然后把编译好的class文件放回原来的WEB-INF的classes文件夹里。配好web.xml的路径。
然后就发现可以运行了。
嗯。差不多就是这些。。。想到再补充。。。