2013-12-11 2 views
1

프로그래밍 방식으로 (Java로) Node.js로 JavaScript를 실행하고 오류를 읽어야합니다. 두 가지 방법은 다음과 같습니다Node.js로 프로그래밍 방식으로 JavaScript 실행

  1. 호출 임시 파일에 node -e <javascript>
  2. 저장 자바 스크립트, node temp.js

어떻게이 다른 전화를?

첫 번째 방법이 더 효율적인 것 같다,하지만 난

process.on('uncaughtException', function(err) { 
    console.error(typeof(err)); 
}); 
function x_5(x_6, x_7) { 
    var x_8 = Infinity; 
} 
throw x_5; 

같은 것을 실행할 때

[eval]:8 
throw x_5; 
    ^
function 

를 인쇄하지만 내가 원하는 모두는 마지막 줄이었다. 두 번째 접근 방식은 나에게 마지막 행을 주었다. 그래서 두 가지 접근 방식이 어떻게 다른지, 그리고 어떻게 불필요한 오류 메시지를 제거 할 수 있는지 이해하려고 노력 중입니다.

+1

http://nodejs.org/api/ vm.html – SLaks

+0

자세한 내용은? Java를 사용하여 JavaScript를 실행하기 위해'node' 명령을 호출합니다. –

+0

그런 다음 우리가 추측하게하는 대신 처음부터 세부 사항을 제공하지 않는 이유는 무엇입니까? –

답변

0

node -e script은 stderr에 예외를 덤프하므로 stdout에 결과를 인쇄 할 수 있습니다. 대신 자바 측 console.error

process.on('uncaughtException', function(err) { 
    console.log(typeof(err)); 
}); 

CONSOLE.LOG는 무시 표준 출력 결과 걸릴 열려진

String[] command = {"node", "-e", js}; 
Process p = Runtime.getRuntime().exec(command); 
InputStream in = p.getInputStream(); 
for (int i = 0; i < in.available(); i++) { 
    System.out.println("" + in.read()); 
} 
+0

입니다. 감사합니다! JS 코드의 내용을 자동으로 이스케이프 할 수 있도록 Java 사이드 코드를 편집했습니다. –

관련 문제