2013-05-08 8 views
7

की कार्यशील निर्देशिका को कॉन्फ़िगर करें मैं स्काला वर्कशीट (और स्कैला दुभाषिया) के लिए कार्यशील निर्देशिका को ग्रहण स्थापना निर्देशिका के बजाय ग्रहण परियोजना पथ के रूप में कार्य करना चाहता हूं। मैं (गैर प्रोग्रामेटिक रूप से) कैसे प्राप्त कर सकता हूं?स्कैला वर्कशीट

मुझे पता है कि मैं System.setProperty("user.dir", "...") का उपयोग कर सकता हूं, लेकिन आईएमएचओ जो कोड में नहीं है। की स्काला वर्कशीट 0.2.1 यह वर्कशीट कार्यशील निर्देशिका को नियंत्रित करने के लिए संभव नहीं है के रूप में

object ScratchWS { 
    System.setProperty("user.dir", "C:\\")   //> res0: String = C:\adt-bundle-windows-x86_64-20130219\eclipse 
    new File("putty.exe").exists()     //> res1: Boolean = false 

    new File("C:\\putty.exe").exists()    //> res2: Boolean = true 
} 
+0

यहां परियोजना के खिलाफ कुछ समस्याएं लॉग इन हैं: [# 102] (https://github.com/scala-ide/scala-worksheet/issues/102), [# 156] (https://github.com/स्केला-आईडीई/स्केला-वर्कशीट/मुद्दों/156)। – metasim

उत्तर

5

: इसके अलावा, यह काम करने के लिए प्रतीत नहीं होता।

सुरक्षा कारणों से, एक बार JVM चल रहा है, यह सीधे (सीधे) JVM के काम को बदलने के लिए संभव नहीं है। विवरण के लिए Changing the current working directory in Java? देखें।

इसलिए, आमतौर पर पूरी तरह योग्य योग्य पथ निर्दिष्ट करने के लिए आमतौर पर अच्छा अभ्यास होता है, या पूरी तरह से योग्य "एंकर पॉइंट" से सापेक्ष पथ निर्दिष्ट करते हैं।

यहाँ एक हैक मैं स्काला वर्कशीट

object WorksheetProjectDirHack { 
    // Yuck.... See: https://github.com/scala-ide/scala-worksheet/issues/102 
    import Properties._ 
    val pathSep = propOrElse("path.separator", ":") 
    val fileSep = propOrElse("file.separator", "/") 
    val projectDir = javaClassPath.split(pathSep). 
     filter(_.matches(".*worksheet.bin$")).head. 
     split(fileSep).dropRight(2).mkString(fileSep) 

    val otherProjectFile = new File(projectDir, "src/main/resources/data.bin") 
} 

यह मूल रूप से अपने ग्रहण परियोजना निर्देशिका में बनाई गई .worksheet/bin निर्देशिका के अस्तित्व का लाभ लेकर काम करता है में इस तरह के एक "लंगर बिंदु" प्राप्त करने के लिए के साथ आया है और स्कैला वर्कशीट क्लासपाथ में जोड़ा गया।

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