2012-07-26 23 views
7

Tworzę zautomatyzowany proces budowania aplikacji internetowej za pomocą pliku node.js w systemie Windows. Próbuję uruchomić nasz kod za pomocą programu zamknięcia java Google. Czytałem dokumentację na child_process w dokumentach węzła. Wspomina, że ​​nie działa jeszcze w oknach. Czy istnieje pakiet lub obejść to?Jak uruchomić zewnętrzny program w pliku node.js w systemie Windows?

Oto kod, który próbuję uruchomić.

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

Zastanawiam się, czy istnieje pakiet węzeł lub inne prace wokół nie jestem świadomy. Węzeł działa ogólnie świetnie, ten plik pliku JAR jest niewielką częścią całego procesu, a większość zespołu pracuje w systemie OSx/Linux. – Joel

Odpowiedz

13

Mam aplikację serwera WWW do kontrolowania kolejki kompilacji w systemie Windows XP i użyłem jej do uruchamiania plików wsadowych lub plików wykonywalnych bez żadnych dodatkowych pakietów.

Sprawdziłbym parametr błędu wywołania zwrotnego i stderr, ponieważ może to pomóc w znalezieniu przyczyny, dla której nie działa.

Mój przykład rozwiązanie z mojego serwera, który mam nadzieję pomoże:

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

dzięki. Otrzymuję błąd: "java" nie jest rozpoznawana jako wewnętrzne lub zewnętrzne polecenie, program roboczy lub plik wsadowy. Czy węzeł nie może używać vars środowiska systemowego? – Joel

+1

Właśnie przetestowałem, umieścić mój exe w folderze na ścieżce i został znaleziony. Ale dostaję dokładny błąd, jeśli wstawię nieistniejącą nazwę exe. Wygląda na to, że jest to problem rozwiązujący ścieżkę/lokalizację java.exe. – miltonb

+0

Tak, to był problem. Dodałem pełną ścieżkę do java.exe i jej działa teraz. dzięki. Teraz muszę sprawić, aby działał on w innych konfiguracjach maszyn. java.exe nie działa na systemach OSX i Linux. – Joel

Powiązane problemy