Java로 작성된 서버를 확장 중이며 Java 서버에서 호출하고 싶은 API를 제공하는 npm에 정말 좋은 Node.js 패키지를 찾았습니다.Java 프로그램에서 Node.js 패키지를 사용하는 좋은 방법이 있습니까?
어떻게 그들 사이에 "다리"를 구현할 수 있습니까?
Java로 작성된 서버를 확장 중이며 Java 서버에서 호출하고 싶은 API를 제공하는 npm에 정말 좋은 Node.js 패키지를 찾았습니다.Java 프로그램에서 Node.js 패키지를 사용하는 좋은 방법이 있습니까?
어떻게 그들 사이에 "다리"를 구현할 수 있습니까?
옵션 2 가지를 생각해 볼 수 있습니다.
저는 개인적으로 옵션 # 2를 선호합니다. 위에서 언급했듯이 v8 자바 스크립트 엔진을 설치해야합니다.
예 :
//process.js
console.log('process running');
console.log(process.argv);
console.error(new Error('process error'));
process.exit(0);
표준 출력은이어야 자바 코드
ProcessBuilder pb = new ProcessBuilder("node", "process", "one", "three", "five")
Process p = pb.start();
//Get output from p
에서 프로그램을 실행
는process running
[ 'node.exe',
'process',
'one',
'tew',
'three']
표준 오류가 반환해야합니다 :
Error: process error
at Object.<anonymous> (./process.js:5:15)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:389:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:504:3
node.js 패키지에 node.js 패키지를 래핑하고 해당 모듈에서 함수를 호출 할 수있는 프로그램에서 API를 사용할 수있게해야합니다. 아마도 웹 서버를 통해 액세스 할 수 있습니다 (하지만 모든 프로세스 간 통신 메커니즘 만들 수 있습니다). 그런 다음 먼저 node.js 프로그램을 실행해야합니다. 그러면 Java 응용 프로그램이 node.js 서버를 통해 node.js 기능에 액세스 할 수 있습니다.
node.js 자바 스크립트를 실행하려면 node.js 인터프리터가 필요하며 별도의 node.js 프로세스를 실행하여 인터럽트 중 하나만 가져옵니다. 따라서 동일한 프로세스에서 Java에서 Javascript로 직접 브리지를 빌드 할 수는 없습니다. Javascript 프로세스를 작성한 다음 해당 프로세스와 통신해야합니다.
답변을 주셔서 대단히 감사드립니다. 괜찮으 시다면 옵션 2에 대해 조금 더 자세히 설명해 주시겠습니까? Node.js와 여기에 설명 된 방법에 익숙하지 않습니다. – nimbuscoder
내 대답이 업데이트되었습니다. –