2013-01-19 31 views
13

मैं स्ट्रिंग में वर्णों पर नक्शा बनाना चाहता हूं, लेकिन मुझे रनटाइम त्रुटियां मिल रही हैं।मुझे java.lang क्यों मिलता है। NoClassDefFoundError जब मैं इस कोड को चलाने का प्रयास कर रहा हूं?

उदाहरण:

object Hello { 
    def hello(c: Char) { 
     print(c) 
    } 

    def main(args: Array[String]) { 
     "Hello World!".map(hello) 
    } 
} 

ट्रेस: ​​

scalac Hello.scala 
java Hello 
Exception in thread "main" java.lang.NoClassDefFoundError: scala/LowPriorityImplicits 
    at Hello.main(Hello.scala) 
Caused by: java.lang.ClassNotFoundException: scala.LowPriorityImplicits 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    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) 
    ... 1 more 
make: *** [test] Error 1 
+6

यह मानचित्रण के साथ कुछ भी नहीं है, आप के साथ समस्या नहीं थी आपका वर्ग पथ यदि आप अपना कोड 'जावा' कमांड के साथ चला रहे हैं, तो cala-java को scala-library.jar जोड़ें स्कैला और इसके बिट्स के बारे में कुछ भी नहीं पता है। वैकल्पिक रूप से 'scala' कमांड के साथ कोड चलाएं। –

+6

'जावा हैलो' के बजाय 'स्कैला हैलो' के साथ अपना प्रोग्राम चलाएं। – Jesper

+0

@ जेस्पर धन्यवाद! – mcandre

उत्तर

7

मुझे लगता है कि तुम्हारी समस्या है कि स्केला पुस्तकालय अपने क्रम classpath में नहीं है। आपको मैन्युअल रूप से मैन्युअल रूप से जोड़ना होगा।

यदि आप मेवेन या एसबीटी जैसे टूल का उपयोग कर रहे हैं, तो निर्भरता को इसके बजाय संकलित के रूप में चिह्नित किया गया है।

आप इन उपकरणों का उपयोग नहीं कर रहे हैं, अपने पुस्तकालय निर्देशिका

0

में जोड़ें "स्केला-library.jar" इसके अलावा यह समस्या लगातार दिखाई, क्योंकि मैं स्काला का सही संस्करण नहीं है। जो लोग इंटेलीजे उपयोग कर रहे हैं, तो आप जोड़ सकते हैं के लिए/>परियोजना संरचनाएं>वैश्विक पुस्तकालयफ़ाइल के तहत स्केला एसडीके बदलने के लिए:

enter image description here

आप संकलन और कमांड लाइन में अपनी परियोजना चला रहे हैं , सुनिश्चित करें कि आपके पास स्कैला का सही संस्करण भी स्थापित है। उदाहरण के लिए:

चेक स्काला संस्करण स्थापित:

$ scala -version 
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL 

build.sbt चेक स्काला का सही संस्करण के लिए:

scalaVersion := "2.11.8"