好的,所以我大致理解52.0是Java 8,并且异常意味着某些代码是使用一个Java版本编译的,而另一些则是使用另一版本的Java编译的。我无法理解的是它是怎么回事。
这是我得到的堆栈跟踪:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openrdf/model/ValueFactory : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.getMethod0(Class.java:2856)
at java.lang.Class.getMethod(Class.java:1668)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
我正在从eclipse执行我的代码,它在到达main之前崩溃。我在这里关注了几篇文章,说要更改我的合规性级别/我的JRE,但似乎无法解决它。
错误是说类'ValueFactory'已用Java 8编译,还是我的代码已编译?我曾尝试将合规性级别更改为1.6、1.7和1.8,但是这些都不能解决问题。
您无需在此处更改合规性级别,或者应该更改,但这不是问题。
代码合规性可确保您的代码与给定的Java版本兼容。
例如,如果您具有针对Java 6的代码合规性,则不能使用Java 7或8的新语法功能(例如,菱形,lambda等)。
此处的实际问题是,您正在尝试在Java版本中编译某些内容,该内容似乎与类路径中的项目依赖项不同。
相反,您应该检查用于构建的JDK / JRE。
在Eclipse中,打开项目属性,然后在Java构建路径中检查所选的JRE。
如果您正在使用自定义的Ant(等)脚本,那么您还想看看那里,以防以上情况本身不够用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句