服务器上升级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就能恢复了。


 

 

 

 

 

### Linux服务器升级Java版本至最新稳定版 对于希望在Linux服务器上将Java版本升级到最新或指定版本的情况,可以遵循一系列特定的操作流程来完成这一目标。首先,在执行任何操作之前,了解当前环境中已有的Java版本是非常重要的。这可以通过`java -version`命令实现。 为了确保系统的兼容性和稳定性,建议备份现有的配置文件以及数据。之后,移除旧版本的JDK有助于避免潜在冲突。具体来说,如果要从较低版本如JDK 1.7升级到更高版本比如JDK 1.8或者更新版本,则应先卸载旧版本: ```bash sudo yum remove java-1.7.0-openjdk* ``` 接着,安装新的Java版本前需确认官方源中是否有可用的新版本。有时可能需要添加第三方仓库以获取更现代的Java发行版。例如,采用Amazon Corretto作为长期支持(LTS)选项之一,它提供了免费、多平台、生产就绪的全功能构建[^3]。 一旦准备就绪,通过包管理器安装期望版本Java变得简单直接。针对基于Red Hat的企业级Linux系统及其衍生产品(如CentOS),可利用yum工具进行安装;而对于Debian系则推荐apt-get方式。这里给出适用于RHEL/CentOS的例子: ```bash sudo amazon-linux-extras install java-openjdk11 ``` 上述命令用于安装OpenJDK 11 LTS版本,这是目前广泛认可的安全且性能良好的选择。成功安装后,验证新安装是否生效同样至关重要: ```bash java -version ``` 此命令应当返回刚刚安装的那个版本的信息。最后一步是调整环境变量PATH和JAVA_HOME指向正确的路径,以便全局范围内识别并使用新版Java编译器解释器。编辑/etc/profile或其他适当位置加入如下设置: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64 export PATH=$JAVA_HOME/bin:$PATH source /etc/profile ``` 以上步骤完成后,重启服务或重新登录使更改生效,并再次检查Java版本确认一切正常工作。 #### 注意事项 在整个过程中需要注意的是,某些应用程序可能会依赖于特定版本Java运行时环境(JRE),因此务必提前测试关键业务逻辑以确保迁移后的兼容性。此外,考虑到安全因素,定期关注官方发布的补丁也是必可少的工作内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值