服务器上升级java版本

今天在服务器上运行一个程序,抛出了一个异常

java.lang.ClassFormatError: com.taobao.terminator.pubhook.servlet.EncodeFilter (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
   at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
   at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
   at org.apache.catalina.loader.WebappClassLoader.findClassInternal(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.loader.WebappClassLoader.findClass(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.core.ApplicationFilterConfig.getFilter(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.core.ApplicationFilterConfig.<init>(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.core.StandardContext.filterStart(catalina-5.5.23.jar.so0wmrz1.so)
   at org.apache.catalina.core.StandardContext.start(catalina-5.5.23.jar.so0wmrz1.so)

 知道是由于java jrm的版本太低导致的。所以,需要设计java jrm版本。

执行之前先要知道服务器上安装的是哪个jdk:

执行命令:

rpm -qa | grep -i jdk

  显示的是:

ldapjdk-4.18-2jpp.3.el5
 

执行命令:

sudo -u root  yum install java-1.6.0-openjdk

 执行之后,在控制台上执行 java -version 提示的是

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.8) (rhel-1.22.1.9.8.el5_6-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
 

接下来重启tomcat 服务,但是tomcat依赖JAVA_HOME 环境变量还是老的1.4.2的值,并没有因为重新安装的jdk而变化过来,主要原因是在服务器上安装tomcat的时候,安装脚本就已经将JAVA_HOME 这个环境变量写到TOMAT的启动脚本之中.

   所以现在需要重新设置tomcat启动脚本中的JAVA_HOME环境变量。

  需要编辑的文件是:

  1. /etc/tomcat5/tomcat5.conf
  2. /etc/sysconfig/tomcat 
以上这两个文件中都有JAVA_HOME 环境变量的设置,将他们一一修改成java 1.6的所在的目录值就行了
重启启动tomcat就能恢复了。

相关推荐