java.lang.UnsupportedClassVersionError 解决
今天将做好的一个项目部署到远程的服务器上时,出现java.lang.UnsupportedClassVersionError 错误。因为我本地开发用的是jdk7,而服务器上用的是jdk5。出现java.lang.UnsupportedClassVersionError 错误正是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行。
网上给出的解决方案,大致两种:降低编译环境的jdk版本;提高运行环境的jdk版本;就是使两者的版本相同。
因为我服务器上跑的项目比较老,不方便提高运行环境的jdk版本,而我的项目将jdk降到5之后,因为一些jar文件的不支持,也未能实现。在此我使用如下的一种方式解决:
1)在服务端安装jdk7,记下安装路径:我的安装路径是:C:\Program Files\Java\jdk1.7.0_21\ 注意:不要配置环境变量。
2)修改tomcat的bin目录下的catalina.bat文件和setclasspath.bat文件。
我用的tomcat是apache-tomcat-7.0.42。
catalina.bat文件的198行左右,修改为:
setclasspath.bat文件中,将%JAVA_HOME%全部替换为C:\Program Files\Java\jdk1.7.0_21\ 。
3)将打好的war包放入tomcat的webapp目录下,然后将tomcat放在服务器。
4)注意:如果新安装的jdk与服务器上低版本的jdk端口冲突的话,要修改掉。
5)这样启动startup.bat就OK,运行用的就是我们tomcat添加配置的高版本的jdk了。