引子:
某次运行tomcat部署开发同学给的java应用程序时候报了一个这样的错:
javax.servlet.ServletException: java.lang.NoSuchMethodError: java.lang.Integer.compare(II)I
....
...
Caused by: java.lang.NoSuchMethodError: java.lang.Integer.compare(II)I
调查原因是我的服务器的jdk版本与开发的不一致,我使用jdk1.6,他使用jdk1.7,于是进行jdk升级,过程如下:
升级jdk1.6 到 jdk1.7
当前jdk版本jdk1.6放在/data0/tools/jdk1.6目录下,下面进行升级
下载jdk-7u11-linux-x64.tar.gz
tar zxvf jdk-7u11-linux-x64.tar.gz
mkdir /data0/tools/
mv jdk1.7.0_11/ /data0/tools/
修改环境变量,原来的1.6的环境变量修改第一行 为新的 jdk1.7路径,如下:
vi /etc/profile
#export JAVA_HOME=/data0/tools/jdk1.6 原来的jdk版本
export JAVA_HOME=/data0/tools/jdk1.7.0_11
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
source /etc/profile 使之生效
java -version 查看最新版本,应该为jdk1.7版本
如果要切回1.6版本,只要修改/etc/profile中的JAVA_HOME变量,再source /etc/profile使之生效