当我运行一个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)
发布于 2012-10-08 00:26:55
这个类是用比用于执行的JDK更新的JDK编译的。
最简单的方法是在执行程序的计算机上安装更新的JRE。如果您认为您安装的是最近的版本,请检查JAVA_HOME和PATH环境变量。
版本49是Java1.5。这意味着类是使用(或用于) JDK编译的,但JDK还很旧。您可能尝试过使用JDK 1.4执行这个类。你真的应该使用更新的版本(1.6或1.7,参见java version history)。
发布于 2012-10-08 01:36:13
另一种选择是删除所有类并重新构建。有构建文件是一个理想的解决方案,以控制整个过程,如编译,打包和部署。您还可以指定源/目标版本
发布于 2012-10-08 00:30:37
代码很可能是用较新的JDK编译的(没有使用cross-compilation options),并且正在较早的JRE上运行。虽然升级JRE是一种解决方案,但最好使用交叉编译选项来确保代码可以在任何JRE上运行,而JRE是应用程序的最低版本。
https://stackoverflow.com/questions/12770622
复制相似问题