2017-03-09 1 views
3

RJB (Ruby Java Bridge)를 사용하여 Ruby on Rails 프로젝트에서 Java 클래스의 함수를 호출하려고합니다.RJB Hello World 예제

자바 클래스 I 그것은 "무기 호에 대한 '`새로운 정의되지 않은 방법 NilClass"제공

require "rjb" 
    def home 
     myclass = Rjb::load(classpath ='\\home\\mennatallah\\TopicalClusteringofTweets\\lib\\java_libs\\helloworld.class', jvmargs=[]) 

     myclass_instance = myclass.new 
     @output = myclass_instance.fifty 
    end 

public class HelloWorld { 

    int fifty(){ 
     return 50 ; 
    } 
    public static void main(String[] args) { 
     // Prints "Hello, World" in the terminal window. 
     System.out.println("Hello, World"); 
    } 
} 

와 컨트롤러의

입니다 나는이 작업을 수행 할 수있는 방법을?

+0

당신이 유닉스 계열 운영 체제를 사용하고있는 것처럼 보입니다. 유닉스 계열의 운영체제에서 경로 구성 요소 구분자는'\\ '이 아니라'/'이다. –

답변

3

다음을 시도해보십시오. 도움이 될 것입니다 :

Rjb::add_jar(Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':')) 
Rjb::load(Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':')) 
test = Rjb.import('HelloWorld') 
instance_class = test.new 
+1

고마워요! – MennatAllahHany

+0

은 * test.new *와 함께 호출됩니다. 콘솔 출력을 파일 (output.txt)로 리디렉션하고 있지만이 파일은 * text.new *를 호출 한 후에도 비어 있습니다. IDE에서 실행하면 output.txt 파일에 "Hello, World"가 표시됩니다. –