स्कैला का उपयोग करके जोडा टाइम के साथ क्लास टूटी हुई त्रुटि


91

मैं एसबीटी के साथ जोडा टाइम रिपॉजिटरी जोड़ रहा हूं

libraryDependencies ++= Seq(
  "joda-time"         % "joda-time"           % "2.1"
)

फिर मैं इसे इस तरह से उपयोग करता हूं:

 val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd")
  ymd.parseDateTime("20121212")

लेकिन, जब मैं एसबीटी में परियोजना संकलित करता हूं, तो मुझे बुरा लगता है:

[warn] Class org.joda.convert.FromString not found - continuing with a stub.
[warn] Caught: java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)
[error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken
[error] (class java.lang.RuntimeException/bad constant pool tag 10 at byte 42)

मैंने joda-time के 2.0 संस्करण की कोशिश की, लेकिन वही त्रुटि मिली।

जवाबों:


177

इस निर्भरता को जोड़ें:

"org.joda"% "joda-Convert"% "1.8.1"

यह joda-time का वैकल्पिक निर्भरता है। मुझे इसे अपने ही प्रोजेक्ट में स्कैला कंपाइलर के साथ काम करने के लिए जोड़ने के लिए स्वीकार करना पड़ा था।

आपका मुद्दा समान प्रतीत होता है।

संस्करण संपादन के समय जैसा है, नवीनतम संस्करण यहां देखे जा सकते हैं


61
भविष्य के लिए, कारण यह स्काला के लिए वैकल्पिक नहीं है कि जावा संकलक गुम एनोटेशन के साथ एक वर्ग को लोड कर सकता है, और स्काला नहीं करता है। मेरे पास एक ही मुद्दा है, उदाहरण के लिए, अमरूद और JSR-305 के साथ।
एलेक्सी रोमनोव

मेरे लिए 12 फरवरी 2013 को काम किया, "joda-time" % "joda-time" % "2.1"और"org.joda" % "joda-convert" % "1.2"
डस्टिन गेट्ज़

9
यह अस्वीकार्य है कि एक पुस्तकालय काम नहीं करता है क्योंकि किसी ने सोचा कि कुछ पुस्तकालयों को अलग रखना व्यावहारिक होगा। खासतौर पर जावा का डिफैक्टो टाइम लाइब्रेरी।
हसन सैयद

मुझे यकीन नहीं है कि 100%, लेकिन यह निर्भरता jodatime व्यवहार को प्रभावित करती है। मेरे पास एक दर्जन आश्रितों के साथ एक परियोजना है, लेकिन बिना डाटटाइम के लिए स्टर्लिंग के joda-convertलिए है yyyy-mm-ddThh-mm-ss। मैंने सरल परियोजना बनाई है जिसमें jodatimeऔर joda-convertनिर्भरताएं हैं, इसलिए इसमें मेरे पास है yyyy-mm-ddThh-mm-ss.000Z
चेरी

5
@ user2829759 मान लीजिए कि आपके पास एक निर्भरता है a.jarजिसमें एक @B class A, जिसमें एनोटेशन @Bआता है b.jar। जावा में, आप उपयोग कर सकते हैं Aअगर आपके पास अपने कोड में a.jarबिना b.jarनिर्माण के रास्ते पर; स्काला में, आप नहीं कर सकते।
एलेक्सी रोमानोव

1

मैं एक समान मुद्दे में चल रहा था:

[warn] Class net.jcip.annotations.NotThreadSafe not found - continuing with a stub.
[warn] Caught: java.lang.NullPointerException while parsing annotations in ~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/IDIndex.class)
[error] error while loading AttributeMap, class file '~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/AttributeMap.class)' is broken
[error] (class java.lang.RuntimeException/bad constant pool index: 0 at pos: 12058)

स्पष्ट रूप से एक निर्भरता को जोड़ने jcip-annotations-1.0.jarसे समस्या हल हो गई।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.