因为java.lang.UnsupportedClassVersionError

时间:2012-10-07 16:26:10

标签: java unsupported-class-version

当我运行java程序时,我收到此错误..你能否建议我们为什么会收到此错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: 
    GenerateInvoice (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

4 个答案:

答案 0 :(得分:89)

这个类是使用比用于执行的JDK更新的JDK编译的。

最简单的方法是在执行程序的计算机上安装更新的JRE。如果您认为安装了最近的一个,请检查JAVA_HOME和PATH环境变量。

第49版是java 1.5。这意味着该类是使用(或用于)旧的JDK编译的。您可能尝试使用JDK 1.4执行该类。你真的应该使用一个更新的(1.6或1.7,见java version history)。

答案 1 :(得分:4)

另一种选择是删除所有类并重建。拥有构建文件是控制整个过程(如编译,打包和部署)的理想解决方案。您还可以指定源/目标版本

答案 2 :(得分:1)

代码很可能是使用以后的JDK编译的(不使用cross-compilation options),而是在早期的JRE上运行。虽然升级JRE是一种解决方案,但最好使用交叉编译选项来确保代码可以在任何JRE作为应用程序的最低版本运行。

答案 3 :(得分:-1)

这是一款全新的linux Mint xfce机器

我一直在争夺这个问题大约一个星期。我正在尝试在Netbeans IDE上学习Java,所以我自然而然地从Oracle获得了combo文件。这是一个JDK和Netbeans IDE的包,它们位于此处的tar文件中。

位于 的 http://www.oracle.com/technetwork/java/javase/downloads/index.html 文件名 使用NetBeans 8.0.1的JDK 8u25

安装它们之后(或者我认为)我会编译/编译一个像“hello world”这样的简单程序,这会吐出一个你可以在终端中运行的jar文件。 请记住,该程序是在Netbeans IDE中运行的。

我最终会遇到这个错误:java.lang.UnsupportedClassVersionError:

即使我从oracle网站运行该文件,我仍然使用旧版本的Java运行时与运行我的jar文件不兼容,该文件是使用新的java运行时编译的。

在搞乱了从设置Paths到编辑.bashrc而没有任何补救措施的东西之后。

我遇到了一个对我来说很容易的解决方案。我遇到了一些自动安装java并在你的系统上配置它的东西,它可以使用最新的1.8。*

其中一个步骤是添加PPA一开始并不确定,但似乎没关系,因为它对我有用


sudo add-apt-repository ppa:webupd8team / java

sudo apt-get update

sudo apt-get install oracle-java8-installer


domenic @ domenic-AO532h~ $ java -version java版“1.8.0_25” Java(TM)SE运行时环境(版本1.8.0_25-b17) Java HotSpot(TM)服务器VM(版本25.25-b02,混合模式)

我认为它也可以配置浏览器java。

我希望这有助于其他人。