V3身份验证是否与JDK 1.6兼容?如果是的话,我该如何利用它?

问题描述:

我只是想知道是否可以在JDK 1.6上运行OSFactory.builderV3()方法。V3身份验证是否与JDK 1.6兼容?如果是的话,我该如何利用它?

它返回以下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openstack4j/openstack/OSFactory : Unsupported major.minor version 52.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
at Test.main(Test.java:9) 

我知道有一个Jersy2JDK1.6连接器适用于梯形V2,如:

org.pacesys 
openstack4j-core 
3.0.0 


org.pacesys.openstack4j.connectors 
openstack4j-jersey2-jdk1.6 
3.0.0 

,但在我的项目而言,它要求V3认证。

+0

你当前问题的答案是YES。但我相信,你想得到另一个答案。所以请修改你的问题,就像你想得到答案一样好。 – Sergii

这个问题实际上是一个Java问题。您正试图运行在JDK 1.6平台上为JDK 1.8或更高版本构建的代码。这是行不通的。 JDK 1.6 JVM不理解该字节码的版本。

理论上,您可以尝试下载该库及其依赖项的源代码,并使用JDK 1.6编译器/工具链构建它们。但是,这只有在库和它的依赖完全兼容Java 6的情况下才能起作用;即在源代码语法和标准Java SE API的使用方面。

在这种情况下,我认为这是不太可能的。按照README.md文件中OpenStack4j Github repo

Requirements

  • OpenStack4j 3.0.X - Java 7 (JDK 8 preferred)
  • OpenStack4j 2.0.X - Java 7

最好的解决办法是升级到Java 8的Java 6将于2013年四月

被EOL'ed有句话说得好:

"The most important thing to do if you are in a hole is to stop digging."

一个困在Java 6上的dev't项目陷入了困境。