关于不受支持的类版本:java.lang.UnsupportedClassVersionError

java.lang.UnsupportedClassVersionError

本问题已经有最佳答案,请猛点这里访问。

当我运行Java程序时,我收到了这个错误。请您建议我们为什么会出现此错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)

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

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

版本49是Java 1.5。这意味着该类是用(或为)一个旧的JDK编译的。您可能试图用JDK1.4执行类。您确实应该使用一个最近的版本(1.6或1.7,参见Java版本历史)。


另一个选项是删除所有类并重新生成。构建文件是控制编译、打包和部署等整个过程的理想解决方案。还可以指定源/目标版本


该代码最有可能是用较新的JDK编译的(不使用交叉编译选项),并且正在较早的JRE上运行。虽然升级JRE是一种解决方案,但最好使用交叉编译选项,以确保代码可以在任何JRE作为应用程序最低版本的情况下运行。


这是一台全新的Linux Mint XFCE机器

我已经为此斗争了大约一个星期了。我正在尝试在NETBeabide IDE上学习Java,因此我自然而然地从Oracle直接获得了组合文件。它是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运行时的旧版本,这与运行新Java运行时编译的JAR文件不兼容。

在处理了我头脑中从设置路径到编辑的大部分事情之后,bashrc没有任何补救措施。

我遇到了一个对我来说足够简单的解决方案。我遇到了一些自动安装Java并在您的系统上配置Java的工具,它与最新的1.8。

其中一个步骤是添加一个最初并不确定这一点的购电协议,但似乎还可以,因为它对我有效。

SUDO APT存储库PPA:WebUPD8Seope/Java

更新源

sudo apt get安装oracle-java8-installer

多米尼克@ DOMENIC-AO532 H~$JAVA版Java版本"1.8 025"Java(TM)SE运行时环境(构建1.8 025-B17)Java热点(TM)服务器VM(构建25.25-B02,混合模式)

我认为它也配置浏览器Java。

我希望这能帮助别人。