0

我只是想知道 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)

我知道 Keystone V2 上有一个 Jersy2JDK1.6 连接器,例如:

org.pacesys
openstack4j-core
3.0.0


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

但就我的项目而言,它需要 V3 身份验证。

4

1 回答 1

0

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

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

在这种情况下,我认为这不太可能奏效。根据OpenStack4j Github repoREADME.md中的文件:

要求

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

最好的解决方案是升级到 Java 8。Java 6 已于 2013 年 4 月停产。

有句话说:

“如果你在一个洞里,最重要的事情就是停止挖掘。”

一个卡在 Java 6 上的开发项目陷入了困境。

于 2017-08-09T10:08:56.717 回答