2012-05-23 2 views
3

jaxax.script 인터페이스가있는 JVM에서 rhino를 사용하고 있습니다. 'require'호출이 포함 된 JavaScript를 평가하려고합니다. 이것은 '요구'에 대한 정의가 없기 때문에 작동하지 않습니다. 그냥 v8 일 필요합니까? 아니면 node.js 일일까요? JVM에서이 문제를 해결할 수있는 방법이 있습니까? 내가 생각할 수있는 옵션온 전성 체크 : Rhino에는 요구 기능이 없습니다. 맞습니까?

    수동으로 별도의 Node.js를하는 데 필요한 코드를
  • 호출을 포함하여 JS 파일을 다시
  • 있습니다

(나는 반드시 방법을 추천하고 있지 않다 처리합니다.)

답변

5

requireCommonJS 사양이며 node.js (및 RingoJS과 같은 다른 프레임 워크) 사양입니다. Rhino의 최신 버전은 require을 지원하지만 JVM과 함께 제공되는 버전은 지원하지 않습니다.

이 문제를 해결하려면 javax.script 인터페이스 대신 Rhino를 직접 사용하거나 CommonJS 모듈 시스템을 직접 구현할 수 있습니다. JVM의 대신에 새로운 Rhino 버전을 사용하실 수도 있습니다 만, 그것이 효과가 있는지 없는지 전혀 모르겠습니다.

Rhino에서 기본적으로 지원되지 않는 다른 CommonJS 사양이있을 수 있으므로 RingoJS와 같은 것을 사용해야 할 수도 있습니다. 물론 node.js 관련 기능에 의존하는 라이브러리에는 여전히 문제가 있습니다.

+0

내 작은 응용 프로그램에서 작동하는 작은 Rhino Require Project https://github.com/micmath/Rhino-Require가 발견되었지만 더 큰 범위에서 작동하는 경우 ... 잘 모르겠습니다. – spankmaster79