And*_*ndy 26 java eclipse version
好的,所以我松散地理解52.0是Java 8,并且异常意味着某些代码是用一个版本的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)
Run Code Online (Sandbox Code Playgroud)
我正在从eclipse执行我的代码,它在到达main之前崩溃了.我在这里跟了几篇帖子说要改变我的合规水平/我的JRE,但我似乎无法解决它.
错误是说'ValueFactory'类是用java 8编译的,还是我的代码有?我已经尝试将我的合规级别更改为1.6,1.7和1.8,但这些都没有解决问题.
Men*_*ena 17
你并不需要改变这里的合规性水平,或者更确切地说,你应该,但是这不是问题.
代码符合性可确保您的代码与给定的Java版本兼容.
例如,如果您有针对Java 6的代码合规性,则不能使用Java 7或8的新语法功能(例如钻石,lambda等等).
这里的实际问题是你试图在Java版本中编译一些看起来与类路径中的项目依赖项不同的东西.
相反,您应该检查您用于构建的JDK/JRE.
在Eclipse中,打开项目属性并在Java构建路径中检查选定的JRE.
如果您正在使用自定义Ant(等)脚本,那么您还需要查看一下,以防上述内容本身不够用.
小智 5
实际上,您有一个针对更高JDK(在您的情况下为JDK 1.8)编译的代码,但在运行时您提供较低的JRE(JRE 7或更低).
您可以通过在编译
时添加目标参数来解决此问题,例如,如果运行时目标是1.7,则应使用1.7或更低版本
javac -target 1.7 *.java
Run Code Online (Sandbox Code Playgroud)
如果你正在使用eclipse,你可以在Window - > Preferences - > Java - > Compiler - > set"Compiler compliance level"中选择你的运行时jre版本或更低版本.
| 归档时间: |
|
| 查看次数: |
129839 次 |
| 最近记录: |