दो आदेशों के बीच मौलिक अंतर यह है कि आप यहां क्या चल रहे हैं। activator
एक JVM प्रारंभ करता है और उसके बाद कमांड लाइन पर दिए गए आदेश को निष्पादित करता है। run
और start
के बीच का अंतर एक और JVM का परिचय है। start
कमांड आपके प्रोग्राम को एक नए JVM में शुरू करता है जबकि run
नहीं करता है। तो, अपने चार मामलों के लिए:
activator run -Dconfig.file=/myConfig.conf # works
डी तर्क उत्प्रेरक के JVM जो तब run
निष्पादित करता जा रहा है। यह काम करता है क्योंकि रन सक्रिय JVM का उपयोग सक्रियकर्ता के रूप में कर रहा है।
activator "run -Dconfig.file=/myConfig.conf" # works
उत्प्रेरक के JVM कोई डी तर्क हो जाता है, लेकिन यह व्याख्या "चलाने -Dconfig.file =/myConfig.conf" और उत्प्रेरक के JVM में तदनुसार config.file संपत्ति सेट, भी।
activator "start -Dconfig.file=/myConfig.conf" # Works
उत्प्रेरक एक नया JVM शुरू होता है और इसे करने के लिए डी विकल्प के साथ ही अपने कार्यक्रम शुरू होकर गुजरता है, इसलिए क्योंकि अपने कार्यक्रम config.file संपत्ति हो जाता है यह काम करता है।
activator start -Dconfig.file=/myConfig.conf # Doesn't work, config file not found
उत्प्रेरक के JVM-डी विकल्प प्राप्त करता है और फिर एक नया JVM जो एक डी विकल्प नहीं मिलता है तो यह विफल रहता है बनाने के द्वारा start
आदेश निष्पादित करता है।
स्रोत
2014-10-28 14:47:27
AFAIR ये आदेश विभिन्न रूट डीआईआर का उपयोग करते हैं? यह देखते हुए कि स्रोत कोड में परिवर्तन होने पर उनमें से एक सबकुछ फिर से सम्मिलित कर रहा है, दूसरा नहीं। – Ashalynd
यदि वह कारण था, तो तीसरा आदेश भी असफल नहीं होना चाहिए? –