• Java FAQ -- "Exception in thread 'main' java.lang.UnsupportedClassVersionError:"


      OS:Ubuntu

      最近重新学习Java,写了一段很小的程序,如下:

    public class Hello{
        public static void main(String args[]){
            System.out.println("hello");
        }
    }

      当javac Hello.java, java Hello后发现出现了下面的提示错误:

    Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    Could not find the main class: Hello. Program will exit.

      后来通过两条命令明白了出现这一问题的原因:

    lxw@19:08:51:~$ which javac
    /home/lxw/Downloads/jdk1.8.0/bin//javac
    lxw@19:08:54:~$ which java
    /usr/bin/java

      这时我又查看了下PATH的值:

    lxw@19:12:11:~$ echo $PATH
    /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lxw/Downloads/jdk1.8.0/bin/  

      出现上述错误的原因是:我在PATH中添加了jdk的路径,但该路径(/home/lxw/Downloads/jdk1.8.0/bin/)在/usr/bin/java的后面,

    所以执行java命令时,执行的是/usr/bin/java,而该目录下的java版本和我在PATH中设定的jdk路径下的javac的版本是不一样的,所

    以才出现了上面的错误。

      所以可以采用下面的方法解决:

      在.bashrc中添加 PATH=jdk路径/bin:${PATH} ,注意不是PATH=${PATH}:jdk路径/bin。

  • 相关阅读:
    深入理解MyBatis中的一级缓存与二级缓存
    Spring-mvc文件的上传和下载
    Spring-mvc的拦截器和异常通知
    各种配置文件
    设计模式---代理模式
    dom4j读取xml和dtd的使用方式
    几种不同的路径
    常用正则表达式
    请求转发和重定向的对比
    跨浏览器检测某个节点是不是另一个节点的后代
  • 原文地址:https://www.cnblogs.com/lxw0109/p/UnsupportedClassVersionError.html
Copyright © 2020-2023  润新知