eclipse中的java.lang.UnsupportedClassVersionError
我真的不是Java程序员,所以我发布了这个问题。 exception是在eclipse项目的主类中抛出java.lang.UnsupportedClassVersionError。 如果我注释掉这个类有的导入,它编译并运行正常。 如果我重新放入导入,它就不起作用。 这是否意味着我导入的库是使用比我更新或更旧版本的java编译的? 当我在系统上执行java -version时,我得到1.5_07
我本来可以发誓这实际上是在上周工作,但也许在日食中有些设置被调整了? eclipse中的Java Build Path是我需要查找的,以检查JRE和编译器版本吗?
在Eclipse中,编译器版本的设置独立于JRE版本。 这意味着您可以将编译器设置为Java版本1.6并使用JRE 1.5。 在这种情况下,您编译的类无法运行。
您可以在Window / Preferences / Java / Compiler
中检查默认编译器合规性级别的Window / Preferences / Java / Compiler
,或项目特定编译器合规性级别的项目属性。 将该级别与项目中使用的JRE( Project / Properties / Java Build Path -> Libraries / JRE System Library
)以及程序的启动配置(通过“ Run / Run Configurations...
菜单)进行比较。
UnsupportedClassVersionError
意味着您使用的Java运行时环境无法识别您尝试执行的类文件的版本。 导致此错误的最常见原因是尝试在较旧的Java版本上使用为较新Java版本编译的类文件 – 例如,您尝试在Java 5运行时环境中使用为Java 6编译的类。
正如Eugene解释的那样,Eclipse有自己的内置编译器,它不使用JDK中的编译器 – 所以即使你在Java 5上运行,你也可以使用Java 6类文件。
Christian解释了如何在Eclipse中设置Java类文件版本。
Eclipse没有使用JDK编译器,但它有自己的编译器,可以为任何JRE生成字节码。 您需要确保项目中的编译器设置设置为与您在Eclipse中注册的JRE相同或更低的版本。 请参阅Window / Preferences / Java / Installed JRE,并检查启动配置中使用的JRE(请参阅运行菜单)。
如果导入的类来自外部库(即,不是从项目中的源代码编译),那么您应该validation用于项目的JRE对于此库是否足够新。
如果您在Eclipse中使用Maven,则可以使用Maven插件更新项目,然后执行Maven“清理”。 在我的情况下,这解决了这个错误的愚蠢和意外的表现。
我知道这是一个旧线程,但我最近冒险遇到了这种类型的错误。
尝试使用Ant构建文件在Eclipse中编译项目时。
- Eclipse Kepler(Java 1.7)
- ant1.7
- Project = Java 1.5
修改了所有内部路径和编译器设置以查看Java 1.5,并且在Eclipse中构建的项目很好。
当尝试使用Ant编译时,我在eclipse中得到了java.lang.UnsupportedClassVersionError
并开始环顾四周 – 包括在这里并找到这个页面。
我的决议是这样的:
Windows > Preferences > Ant > Runtime > Global Entries
Global Entries指向Java 1.7 tools.jar
我添加了一个新的外部Jar(在右侧菜单上)并将其指向Java 1.5 tools.jar
我删除了原始条目(1.7 tools.jar),我的ant构建开始工作。
- Lambda和cast交叉类型(Eclipse编译器bug)
- Eclipse中的openshift私钥认证失败错误
- 在Eclipse中配置字符串外部化以使用$ {key}作为字段名称
- 我收到“java.lang.ClassNotFoundException:com.google.gson.Gson”错误,即使它是在我的类路径中定义的
- 在Android中使用SQLite和ContentProvider设置_ID字段
- 我可以找出java程序是使用java还是javaw启动的
- 无法在Eclipse中运行/调试Java应用程序(JavaTimeZone问题)
- 开发人员实际上是否使用vim在Windows操作系统上编写代码(Java)?
- 使用Apache CXF的Web服务响应显示“无绑定操作信息…”