2009-09-23 11 views
5

मुझे स्कैला रनटाइम-लाइब्रेरी के साथ एक सरल स्कैला प्रोग्राम को गठबंधन करने के लिए कमांड लाइन से जर्जर का उपयोग करने में समस्या हो रही है।कमांड लाइन से जर्जर का उपयोग कैसे करें?

jarjar सही ढंग से निर्भरता का पता लगाता है:

$ java -jar ~/Desktop/saug/jarjar-1.0.jar find jar BCT.jar scala-library.jar 
/home/schani/Work/scala/bct/BCT.jar -> /home/schani/Work/scala/bct/scala-library.jar 

संयोजन उन्हें काम नहीं करता है, तथापि:

$ CLASSPATH=./scala-library.jar java -jar ~/Desktop/saug/jarjar-1.0.jar process rules.jjl BCT.jar BCTS.jar 

जार फ़ाइल है कि मैं अभी भी स्केला-library.jar पर निर्भर करता है। चाहे मैं क्लास्स्पैट वैरिएबल जोड़ूं या नहीं, कोई फर्क नहीं पड़ता। मेरी नियम.जेजेएल फ़ाइल इस तरह दिखती है:

keep BCT 

क्या करना है?

+1

यह सिर्फ एक जेडीई मस्तिष्क चाल है। उम्मीद है कि यह आपको बहुत ज्यादा परेशान नहीं करता ..... –

उत्तर

1

जावा "-जर" विकल्प का उपयोग कक्षापथ को अनदेखा करता है। एक classpath के साथ स्पष्ट रूप से मुख्य वर्ग निर्दिष्ट करने का प्रयास है, और छोड़ देते हैं "जार":

java -cp ~/Desktop/saug/jarjar-1.0.jar:./scala-library.jar com.tonicsystems.jarjar.Main process rules.jjl BCT.jar BCTS.jar 
+0

काम नहीं करता है, या तो। –

+0

मेरे लिए, अधिक विशिष्ट होने के लिए यह एक जार बनाता है, जिसमें बस BCT.jar शामिल है। मैं किसी भी पैकेज का नाम बदलना नहीं चाहता, लेकिन सभी निर्भरताओं को इकट्ठा करना चाहता हूं। इसलिए नियमों में मेरे पास बीसीटी.जर – pihentagy

0

कोशिश scala.runtime.Nothing $ वर्ग के लिए एक रखें जोड़ने। स्कैला के साथ एक समान उत्पाद (ऑटोजर; http://autojar.sourceforge.net/en_d/index.html) का उपयोग करते समय मुझे यह आवश्यक पाया गया।

+0

में मुख्य वर्ग के पैकेज के साथ नियम बना रहता है, यह काम नहीं करता है। जर्जर केवल कमांड लाइन पर निर्दिष्ट इनपुट जार फ़ाइल से कक्षाएं लेता है, लेकिन किसी भी निर्भर जार से नहीं, और उन्हें निर्दिष्ट करने का कोई तरीका प्रतीत नहीं होता है। –

0

जर्जर अन्य जार को आपके जार में दोबारा नहीं दोहराता है। यह केवल एक जार के अंदर निर्भरता का नाम बदलता है।

सभी निर्भर जार को अपने जार में दोबारा करने के लिए Clean way to combine multiple jars? Preferably using Ant पर उल्लिखित विधि का उपयोग करें, फिर भावी निर्भरता नरक को रोकने के लिए जर्जर चलाएं।

+0

वास्तव में, चींटी कार्य का उपयोग करके बस पुनः लोड करना सबसे आदर्श समाधान नहीं है। मैंने ऐसा करने के लिए ग्रहण वसा-जार प्लगइन का उपयोग किया। मूल रूप से, एक खाली परियोजना बनाएं और परियोजना के निर्माण पथ में सभी जार डालें, फिर वसा-जार प्लगइन http://fjep.sourceforge.net/ का उपयोग वसा जार में निर्यात करने के लिए करें। – yincrash

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