• JDK问题--linux下java unrecognized class file version错误的解决


    linux下java unrecognized class file version错误的解决

     环境:RedHat Linux Enterprise 5.4

     问题:java.sun.com下载jdk1.60和jre1.60的bin文件,sh ./某某某.bin安装之后,编译HelloWorld.java,生成HelloWorld.class文件,但是java HelloWorld却不能执行。

    出现如下错误:  

    [root@MrjavaPC]# javac HelloWorld.java

    [root@MrjavaPC]# ls HelloWorld.class HelloWorld.java 计算器.java 计算器.java~

    [root@MrjavaPC]# java HelloWorld Exception in thread “main” java.lang.ClassFormatError: HelloWorld (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 java.net.URLClassLoader.findClass(libgcj.so.7rh)

    at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh) at java.lang.ClassLoader.loadClass(libgcj.so.7rh)

    at java.lang.ClassLoader.loadClass(libgcj.so.7rh)

    at gnu.java.lang.MainThread.run(libgcj.so.7rh)

    [root@MrjavaPC]#

    初步解决方法和分析:  在执行的时候打入完整路径。

    如下:  

    [root@MrjavaPC]# /usr/java/jre1.6.0/bin/java HelloWorld

    Hello World!

    [root@MrjavaPC]#

    可见,PATH出了点小问题。  其实查一下java版本就晓得问题出在哪里了。  

    [root@MrjavaPC]# java -version

    java version “1.4.2″ gij (GNU libgcj) version 4.1.1 20061011 (Red Hat 4.1.1-30)  

    Copyright (C) 2006 Free Software Foundation, Inc.

    This is free software;

    see the source for copying conditions. There is NO warranty;

    not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 

    PURPOSE.

    [root@MrjavaPC]#

    这个异常一般是因为你用的JRE/JDK的版本和代码编译时候不一致造成的,一般是jre的版本太低了。

    这里,version是”1.4.2“,而咱们装的是1.6.0,所以有 (unrecognized class file version)一说。

     解决的方法一:

    在执行的时候打入完整路径。如下:[root@MrjavaPC]# /usr/java/jre1.6.0/bin/java HelloWorld

    Hello World!

    解决的方法二:

    在linux根路径下找到.bash_profile文件,在文件中加入以下内容: export JAVA_HOME=/usr/jdk1.6.0_14 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/rt.jar

    我安装好jdk1.6.0后,配好了环境变量,可是输入java -version的时候还是显示jdk1.4.2,不知道怎么不更新。

    由于我环境中安装了was是自带jdk的,这个低版本的就是来自那儿。

    查看我path下面的路径,没有看到was的jdk路径,可是java -version时总是低版本的。

    解决办法:

    把 path 环境变量中 %JAVA_HOME%/bin 的这一项移到最前面去!

    因为你可能装了其他带有 JDK 的软件,比如 Oralce 9i 就有个 JDK 1.3,而且会很无耻地加到 PATH 的最前面的,你只要把你装的 JDK PATH 放到最前面去就可以了,而且这样也不会影响 Oracle 9i 的使用。

  • 相关阅读:
    upgrade和update的区别
    批处理文件的几种路径扩展
    CMD does not support UNC paths as current directories.的巧妙解决方案
    让批处理不回显错误信息
    python中那纠结的os.system()与空格处理
    jQuery Mobel 学习相关资料整理(一)
    c#获取某月的第一天和某月的最后一天
    Umbraco网站制作(七) 调用外部用户控件
    Umbraco网站制作(八) 实现伪静态
    Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
  • 原文地址:https://www.cnblogs.com/jackhub/p/3252328.html
Copyright © 2020-2023  润新知