2010-02-24 4 views
1

차라리 "재발견"하지 않고 Java 응용 프로그램에 필요한 기능을 제공하는 Ruby 프로젝트를 찾았습니다. (내가 필요로하는 기존 Java 프로젝트는 없습니다. . 그래서, 최상의 경우 시나리오, 나는 자바 코드 (ala JSR223)에서 루비 코드를 실행할 수있다.자바 프로젝트에서 Ruby 코드를 재사용해야합니까?

그러나이 루비 프로젝트는 여러 개의 보석을 설치해야합니다. 나는 전체 Java 애플리케이션을 JRuby 애플리케이션으로 변환하는 것에 관심이 없지만이 프로젝트를 활용할 수 있기를 바랍니다. 보석에서 ScriptEngine으로 코드를로드하는 쉬운 방법이 있습니까? 아니면 단지 두통을 묻는 것입니까?

+2

예, 진행 방법을 알려주십시오. P – OscarRyz

답변

2

JRuby는 견고한 플랫폼이며 Java와 잘 통합됩니다. 하지만 Rubygems는 Java 빌드 도구와 잘 통합되지 않습니다.

네이티브 C 코드가 포함 된 보석은 잊어 버리십시오. JRuby에서 사용할 수 없습니다. 모든 보석 (모든 종속성이) 순수 루비 경우

, JRuby를에서 그들을 사용하는 것이 기술적으로 가능하지만 JRuby를 런타임을 찾을 수 있도록 당신은 두통은 그 항아리에 포장하기 것입니다.

2

대부분 나는 복잡성 때문에 아니오라고 말하고 싶습니다. 주관적이지만 개인적으로 시간을내어 다시 작성하는 것이 좋습니다. 개선 할 수 있으며 완료하면 더 잘 이해할 수 있습니다.

+0

가능한 경우 자바로 이식하는 것이 좋습니다. 그러나 시간 제약으로 인해 웹 서비스로 실행하는 대신 사용할 수 있습니다. –

1

응용 프로그램을 파이프/파일 (또는 stdin 및 stdout) 또는 RPC 메커니즘과 같은 방식으로 상호 작용하는 두 가지로 분할하는 것이 좋습니다. 이런 접근 방식이 실제로 의미가 있는지 여부는 Ruby 라이브러리가하는 일에 달려 있습니다. 두 애플리케이션 간의 인터페이스를 생성하는 것은 Java에서 실제로 구현하는 것보다 훨씬 복잡 할 수 있습니다.

1

JRuby에서 Java 코드를 재사용했는데 왜 이것이 두 가지가 될 수 없는지는 알 수 없습니다.

또 다른 생각은 Ruby 코드를 실행 한 다음 자바 서비스에서 호출 할 웹 서비스 또는 웹 서비스 세트를 사용할 수 있습니까? Sinatra 루비 코드 용 웹 서비스 래퍼를 작성하는 일이 터무니없이 간단합니다. 자바는 웹 서비스를 호출 할 도구가 부족하지 않습니다.

관련 문제