刚开始在控制台运行的时候是正常的,但自从我在控制台运行了一个JDBC程序报了这个异常后,我运行任何程序都会报这个异常了,我把CLASSPATH认真检查了好几遍,并且还恢复到以前的设置,但还是会报这个异常,但在Eclipse中一切正常,真是块让我疯了啊,
Exception in thread "main" java.lang.UnsupportedClassVersionError: Joseph (Unsup
ported major.minor version 50.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

解决方案 »

  1.   

    通常这种异常是因为类版本不一样造成的,比如使用高版本jdk(如jdk1.5)编译的类在低版本的jre(比如jre1.4)上运行,就会报这种异常。
    建议你检查一下工程中用到的jdk和运行时的jre版本。
      

  2.   

    不可能啊,我下的是1.6的jdk安装包安装的呀,我不过我也觉得怪了,我查看我的JVM的版本发现是1.4版本的,这是为什么啊,我的JDK可是在官网下的啊
      

  3.   

    环境变量没有设对。
    可能是你安装JDK后,安装其他软件的时候(例如Oracle),该软件自动安装了低版本的jre。找到path变量看看就知道怎么回事了。
      

  4.   

    对啊,我是装了oracle,我要怎么解决这个问题啊
      

  5.   

    我解决了,不过我是把C:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;删了,这样不会影响到ORACLE吧?
      

  6.   

    编译程序的JDK版本与你运行程序的JDK版本不一致就会出这个问题,通常是JDK大版本才会有这个问题。例如JDK 5 和 JDK 6.
      

  7.   

    通常安装Oracle后,Oracle会默认将一个低版本的jre放到Path的最前面,只要把它去掉就可以了,不会影响它的使用,只要path里有一个jdk\bin\就可以了。
      

  8.   

    jdk不一致的问题把你的jdk设置到oracle前面就可以了