我只是想知道OSFactory.builderV3()方法是否可以在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连接器适用于Keystone V2,如:
org.pacesys
openstack4j-core
3.0.0
org.pacesys.openstack4j.connectors
openstack4j-jersey2-jdk1.6
3.0.0
但就我的项目而言,它需要V3身份验证。
答案 0 :(得分:0)
问题实际上是Java问题。您正在尝试在JDK 1.6平台上运行为JDK 1.8或更高版本构建的代码。那不行。 JDK 1.6 JVM无法理解该字节码的版本。
理论上,您可以尝试下载库及其依赖项的源代码,并使用JDK 1.6编译器/工具链构建它们。但是,这只有在库及其依赖项完全兼容Java 6时才有效;即,在源代码语法和标准Java SE API的使用方面。
在这种情况下,我认为这不太可行。根据{{3}}中的README.md
文件:
要求
- OpenStack4j 3.0.X - Java 7(首选JDK 8)
- OpenStack4j 2.0.X - Java 7
最佳解决方案是升级到Java 8. 2013年4月,Java 6已经过EOL。
有一句话:
“如果你陷入困境,最重要的事情就是停止挖掘。”
陷入Java 6的dev't项目陷入困境。