我正在尝试启动Octopus Arm Benchmark(强化学习基准).我下载了octopus-code-distribution.zip并启动了octopus-environment.jar
java -jar octopus-environment.jar internal settings.xml
Run Code Online (Sandbox Code Playgroud)
我得到以下例外:
Exception in thread "main" java.lang.NoSuchMethodError: javax.xml.bind.annotation.XmlAccessorType.value()Ljavax/xml/bind/annotation/AccessType;
at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getAccessType(ClassInfoImpl.java:339)
at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:228)
at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:87)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:127)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:49)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:41)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:204)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:327)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:198)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:363)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
at Main.main(Main.java:41)
Run Code Online (Sandbox Code Playgroud)
我已经用Google搜索了错误消息,这似乎是我的Java版本的一个问题.我正在使用Java 1.6,它以某种方式导致与JAXB库的冲突.我认为它适用于Java 1.5.但我还没有找到任何解决方法.
我希望你能在这里帮助我.一些背景信息:我使用的是Ubuntu 11.04,我的Java版本是1.6.0_26.
在JAXB 2.0中,AccessType重命名为XmlAccessType(AccessorType也重命名为XmlAccessorType).因此,JAXB早期快照的用户会遇到此问题.所以你有两个选择:
更新源代码,以便您可以使用Java 6附带的JAXB.
使用您环境中使用的实现覆盖JAXB实现.该文件的MANIFEST文件octopus-environment.jar显示所需的文件存储在/ lib文件夹下,因此您可以运行
java -Djava.endorsed.dirs=./lib -jar octopus-environment.jar internal settings.xml
这利用了Java Endorsed Standards Override Mechanism,因此您可以覆盖Java 6中提供的默认JAXB.
| 归档时间: |
|
| 查看次数: |
12853 次 |
| 最近记录: |