2012-01-15 17 views
6

के साथ जावा त्रुटि मैं Octopus Arm Benchmark (एक सुदृढीकरण सीखने बेंचमार्क) शुरू करने की कोशिश कर रहा हूं। मैं octopus-code-distribution.zip डाउनलोड किया है औरजेएक्सबी और जावा 1.6

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) 

मैं पहले से ही त्रुटि संदेश googled और यह मेरे जावा के साथ एक समस्या हो रहा है संस्करण। मैं जावा 1.6 का उपयोग कर रहा हूं, जो किसी भी तरह से JAXB लाइब्रेरी के साथ संघर्ष का कारण बनता है। मुझे लगता है कि यह जावा 1.5 के साथ काम करेगा। लेकिन मुझे अभी तक कोई कामकाज नहीं पता था।

मुझे उम्मीद है कि आप यहां मेरी मदद कर सकते हैं। कुछ पृष्ठभूमि जानकारी: मैं उबंटू 11.04 का उपयोग कर रहा हूं और मेरा जावा संस्करण 1.6.0_26 है।

+3

जावा 1.6 में जेएक्सबी लाइब्रेरी शामिल है। बाहरी जेएक्सबी जार का उपयोग न करें। –

+0

जांचें कि आपने Java 1.7 के लिए कोई संस्करण डाउनलोड किया है और जावा 1.6 – SHiRKiT

+0

ग्रेग्स के लिए नहीं है: यह मेरा कोड नहीं है और मैं इसे बदलना नहीं चाहता था। SHiRKiT: कोड बहुत पुराना है (~ 2006), तो मुझे लगता है कि यह जावा 1.5 के लिए अधिक संभावना है। – alfa

उत्तर

6

जेएक्सबी 2.0 में, AccessType का नाम बदलकर XmlAccessType (AccessorType का नाम बदलकर XmlAccessorType) कर दिया गया है। इस प्रकार, जेएक्सबी के शुरुआती स्नैपशॉट के उपयोगकर्ता इस समस्या से अवगत हैं। तो अगर आप दो विकल्प हैं:

  1. अद्यतन स्रोत कोड ताकि आप उपयोग कर सकते हैं JAXB जावा 6. के साथ भेज दिया

  2. अवहेलना अपने वातावरण में इस्तेमाल किया एक के साथ JAXB कार्यान्वयन। फ़ाइल octopus-environment.jar की MANIFEST फ़ाइल से पता चलता फ़ाइलों की जरूरत/lib फ़ोल्डर के अंतर्गत जमा हो जाती है, तो आप

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

चला सकते हैं इस का लाभ उठाता है Java Endorsed Standards Override Mechanism ताकि आप डिफ़ॉल्ट JAXB जावा 6 में भेज दिया ओवरराइड कर सकते हैं।

+1

मैं स्रोत कोड को बदलना नहीं चाहता हूं। विकल्प 2 बहुत अच्छी तरह से काम करता है। बहुत अच्छी व्याख्या। अपना समय देने के लिए धन्यवाद! :) – alfa

संबंधित मुद्दे