2012-01-15 31 views
6

Octopus Arm Benchmark(強化学習ベンチマーク)を開始しようとしています。私はoctopus-code-distribution.zipをダウンロードしてJAXBとJava 1.6のJavaエラー

java -jar octopus-environment.jar internal settings.xml 

とタコ-environment.jarを開始し、私は次の例外だ:

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) 

私はすでに、エラーメッセージをGoogleで検索をし、私のJavaに問題があるように思われますバージョン。私はJava 1.6を使用しています。これは何とかJAXBライブラリとの競合を引き起こします。私はそれがJava 1.5で動作すると思います。しかし、まだ解決策は見つかっていません。

ここで私を助けてくれることを願っています。背景情報:私はUbuntu 11.04を使用しています。Javaバージョンは1.6.0_26です。

+3

Java 1.6にはJAXBライブラリが含まれています。外部JAXB jarを使用しないでください。 –

+0

Java 1.7ではなくJava 1.6用のバージョンをダウンロードしたかどうかチェックしてください。 – SHiRKiT

+0

GregS:私のコードではなく、変更したくありませんでした。 SHiRKiT:コードは非常に古く(〜2006年)、Java 1.5の方が多いと思います。 – alfa

答えて

6

JAXB 2.0では、は、XmlAccessTypeAccessorTypeXmlAccessorTypeに名前が変更されました)に名前が変更されました。したがって、JAXBの初期スナップショットのユーザーはこの問題に曝されます。だから、あなたは2つのオプションがあります。

  1. 更新あなたはJAXBが

  2. オーバーライドするJava 6を使用している環境で使用したものとJAXBの実装を出荷使用できるようにソースコード。ファイルoctopus-environment.jarのMANIFESTファイルが

java -Djava.endorsed.dirs=./lib -jar octopus-environment.jar internal settings.xml

を実行することができますので、これは非常にあなたは、Java 6に付属しているデフォルトのJAXBをオーバーライドすることができJava Endorsed Standards Override Mechanismを活用して、必要なファイルは、/ libフォルダの下に格納されている示しています。

+1

私はソースコードを変更したくありません。オプション2は非常にうまく動作します。非常に良い説明。あなたの時間をありがとう! :) – alfa

関連する問題