2014-10-27 11 views
10

इन दोनों आदेशों का अलग-अलग व्यवहार क्यों होता है?एक्टिवेटर: प्ले फ्रेमवर्क 2.3.x: रन बनाम

उत्पादन मोड में शुरू करना और देव मोड शुरू करना अलग है?

activator run -Dconfig.file=/myConfig.conf # works 
activator "run -Dconfig.file=/myConfig.conf" # works 

activator "start -Dconfig.file=/myConfig.conf" # Works 
activator start -Dconfig.file=/myConfig.conf # Doesn't, config file not found 
+0

AFAIR ये आदेश विभिन्न रूट डीआईआर का उपयोग करते हैं? यह देखते हुए कि स्रोत कोड में परिवर्तन होने पर उनमें से एक सबकुछ फिर से सम्मिलित कर रहा है, दूसरा नहीं। – Ashalynd

+0

यदि वह कारण था, तो तीसरा आदेश भी असफल नहीं होना चाहिए? –

उत्तर

21

दो आदेशों के बीच मौलिक अंतर यह है कि आप यहां क्या चल रहे हैं। 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 आदेश निष्पादित करता है।

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