【问题标题】:java.lang.UnsupportedClassVersionError [duplicate]java.lang.UnsupportedClassVersionError [重复]
【发布时间】:2012-09-28 01:09:40
【问题描述】:

当我运行一个 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)

【问题讨论】:

    标签: java unsupported-class-version


    【解决方案1】:

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

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

    版本 49 是 java 1.5。这意味着该类是使用(或用于)一个还旧的 JDK 编译的。您可能尝试使用 JDK 1.4 执行该类。您确实应该使用更新的版本(1.6 或 1.7,请参阅 java version history)。

    【讨论】:

    • 是的...从构建路径中删除旧版本的 jre 确实解决了我的问题...
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 版本 49 是 JDK 1.5,不是最新版本。
      【解决方案4】:

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

      我已经为此奋斗了大约一个星期。我正在尝试在 Netbeans IDE 上学习 Java,因此我很自然地直接从 Oracle 获得了组合文件。这是 JDK 和 Netbeans IDE 的一个包,位于此处的一个 tar 文件中。

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

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

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

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

      在弄乱了从设置路径到编辑 .bashrc 的大部分内容后,没有任何补救措施。

      我遇到了一个对我来说也很简单的解决方案。我遇到了一些自动安装 java 并在你的系统上配置它的东西,它适用于最新的 1.8。*

      其中一个步骤是添加 PPA,起初并不确定这一点,但似乎没问题,因为它对我有用


      sudo add-apt-repository ppa:webupd8team/java

      sudo apt-get 更新

      sudo apt-get install oracle-java8-installer


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

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

      我希望这对其他人有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-29
        • 2021-08-21
        • 1970-01-01
        • 2023-01-07
        • 1970-01-01
        相关资源
        最近更新 更多