2012-07-26 2 views
7

Windows에서 node.js로 자동화 된 웹 앱 빌드 프로세스를 만들고 있습니다. Google 클로저 Java 프로그램을 통해 코드를 실행하려고합니다. 노드 문서에서 child_process에 대한 문서를 읽었습니다. 그것은 Windows에서 아직 작동하지 않는다고 언급합니다. 이를위한 패키지가 있습니까?Windows에서 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

. 노드는 전반적으로 훌륭하게 작동합니다.이 jar 파일 단계는 전체 프로세스의 작은 부분이며 대부분의 팀이 OSx/Linux에 있습니다. – 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

감사합니다. 내가 얻는 오류는 다음과 같습니다. 'java'는 내부 또는 외부 명령, 실행 가능 프로그램 또는 배치 파일로 인식되지 않습니다. 노드가 시스템 환경 변수를 사용할 수 있습니까? – Joel

+1

방금 ​​테스트했는데 경로의 폴더에 내 exe 파일을 넣으면 발견되었습니다. 하지만 존재하지 않는 exe 이름을 넣으면 정확한 오류가 발생합니다. 그래서 java.exe의 경로/위치를 해결하는 문제로 보입니다 – miltonb

+0

네, 그게 문제였습니다. 나는 java.exe에 대한 전체 경로를 추가했다. 감사. 이제 다른 컴퓨터 구성에서도 작동하도록해야합니다. java.exe는 OSX 또는 Linux에서 작동하지 않습니다. – Joel

관련 문제