当我运行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)
答案 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。
我希望这有助于其他人。