2012-07-26 17 views
7

मैं विंडोज़ पर node.js के साथ एक स्वचालित वेब ऐप निर्माण प्रक्रिया बना रहा हूं। मैं Google क्लोजर जावा प्रोग्राम के माध्यम से अपना कोड चलाने की कोशिश कर रहा हूं। मैंने नोड दस्तावेज़ों में child_process पर प्रलेखन पढ़ा। यह उल्लेख करता है कि यह अभी तक विंडोज़ में काम नहीं करता है। क्या इसके लिए कोई पैकेज या काम है?आप विंडोज़ पर node.js में बाहरी प्रोग्राम कैसे चलाते हैं?

कोड कोड चलाने की कोशिश कर रहा है।

var _exec = require('child_process').exec; 
_exec('java ' + '-jar '+ COMPILER_JAR +' --js '+ srcPath +' --js_output_file '+ distPath, 
    function(e){ 
     echo("google closure done...."); 
     echo(e); 
    }); 
+1

मैं अगर वहाँ एक नोड पैकेज या कुछ अन्य काम है चारों ओर मैं के बारे में पता नहीं कर रहा हूँ सोच रहा हूँ। नोड पूरी तरह से काम कर रहा है, यह जार फ़ाइल चरण समग्र प्रक्रिया का एक छोटा सा हिस्सा है, और अधिकांश टीम ओएसएक्स/लिनक्स पर है। – Joel

उत्तर

13

Windows XP पर बनाता है की एक कतार नियंत्रित करने के लिए एक वेब सर्वर अनुप्रयोग है और मैं इसका इस्तेमाल किसी भी अतिरिक्त संकुल के बिना बैच फ़ाइलों या निष्पादनयोग्य चलाने के लिए।

मैं कॉलबैक और stderr पर त्रुटि पैरामीटर की जांच करूंगा क्योंकि इससे आपको यह काम करने में मदद मिल सकती है क्योंकि यह काम नहीं करता है। अपने सर्वर जो मुझे आशा है कि से बाहर

मेरे उदाहरण समाधान में मदद करता है:

var theJobType = 'FOO'; 
var exec = require('child_process').exec; 
var child = exec('Test.exe ' + theJobType, function(error, stdout, stderr) 
    { 
     if (error != null) { 
      console.log(stderr); 
      // error handling & exit 
     } 

     // normal 

    }); 
+0

धन्यवाद। मुझे जो त्रुटि मिल रही है वह है: 'जावा' को आंतरिक या बाहरी कमांड, ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल के रूप में पहचाना नहीं गया है। क्या नोड सिस्टम पर्यावरण युद्धों का उपयोग नहीं कर सकता है? – Joel

+1

मैंने अभी परीक्षण किया है, मेरे exe पथ में एक फ़ोल्डर में डाल दिया और यह पाया गया था। लेकिन अगर मैं एक मौजूदा अस्तित्व का नाम डालता हूं तो मुझे आपकी सटीक त्रुटि मिलती है। ऐसा लगता है कि java.exe – miltonb

+0

के पथ/स्थान को हल करने में कोई समस्या है हां, यह मुद्दा था। मैंने java.exe का पूरा पथ जोड़ा और अब यह काम कर रहा है। धन्यवाद। अब मुझे इसे अन्य मशीन कॉन्फ़िगरेशन पर काम करने की आवश्यकता है। java.exe ओएसएक्स या लिनक्स पर काम नहीं करेगा। – Joel

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