내 jrubyonrails
프로젝트의 jar 파일로 Java 명령 행 응용 프로그램 (오픈 소스)을 사용하고 있습니다. 주요 응용 프로그램은 난 단지 myDesiredMethod
기능을 원하는, 내가 건너 뛰려면 여러 단계가 있습니다Java jar 파일 클래스의 protected 메소드에 액세스하는 방법
public class Decoder extends Annotator {
public Decoder() {
super();
}
public static void main(String[] args) {
... // Do something that I don't want
myDesiredMethod();
... // And some other thing
}
...
}
을 다음과 같이한다. 그리고 부모 클래스의 protected
메소드입니다. 그것은이 오류가 발생
ann = Annotator.new
: TypeError: no public constructors for Annotator
public class Annotator extends Helper {
...
protected SomeClass myDesiredMethod(boolean reMap) throws Exception { ... }
...
}
Annotator
클래스는 내가 할 수 없도록 공용 생성자가 없습니다.
그런 다음 myDesiredMethod
에 액세스하기 위해 Annotator
을 상속하는 다른 클래스를 구현하려고합니다. NoMethodError: undefined method 'myDesiredMethod' for MyModule::RuDecoder:Class
:이 내가 지금까지
require 'java'
require 'decoder.jar'
java_import java.util.ArrayList
java_import java.lang.StringBuilder
module MyModule
class RuDecoder < Annotator
include_package 'com.decoder'
def self.my_method
myDesiredMethod
end
end
그것은 오류가 반환하려 한 jruby
코드입니다. jruby
이 부모 클래스의 메소드를 찾지 못하는 것 같습니다.
제 경우에는 해결책이 있습니까? Java 라이브러리를 jar로 다시 작성하고 업데이트가있을 때마다 수동으로 프로그램에 넣고 싶지 않습니다.