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认证。
答
这个问题实际上是一个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项目陷入了困境。
你当前问题的答案是YES。但我相信,你想得到另一个答案。所以请修改你的问题,就像你想得到答案一样好。 – Sergii