Rと一緒に作業しているJavaコードを使用している人は誰ですか?私は "RJAVA"パッケージでRからJavaコードを呼び出すことを意味します。クラスのJavaオブジェクトをRに(rjavaパッケージで)返す方法
私は自分のパッケージを作成し、そこにはJavaコードのjarファイルがあります。 (のようにhttps://cran.r-project.org/web/packages/helloJavaWorld/vignettes/helloJavaWorld.pdf)
私は.rファイルがあり、私はJavaメソッドを呼び出したい。 問題は "クラスのJavaオブジェクト"を返すときです。整数として "I"、文字列として "S"に問題はありません。私はそれで作業を続行するにはRのクラスのJavaオブジェクトが必要です。可能です?私は戻り値 "L"(例えば、 "Ljava/lang/Object")のJava Objectを返すことができますが、動作しません。
これは、Javaコードを呼び出すための私のRコード:
FCA <- function(){
a <- .jnew("fcamp/test/MainTest")
b <- .jcall(a, "S", "testFunction")
c <- .jcall(a, "Lfcamp/input/Context;", "testFunction2")
return(c)
}
これは私のエラーです:
Error in .jcall(a, "Lfcamp/input/Context;", "testFunction2") :
method testFunction2 with signature()Lfcamp/input/Context; not found
間違いがありますか? RのクラスのJavaオブジェクトを返すことが可能であり、そこでは引き続き作業しますか?ここで
あなたの例は、パッケージパスが正しい場合、c < - .jcall(a、 "Lfcamp/input/Context;"、 "testFunction2")で動作するはずです。接頭辞に "L"を付け、接尾辞に ";"を付ける必要があります。フルクラス名 – tokiloutok
私は "L"と ";"そこ。そして、それはまだ動作しません。正しいと確信できる場合は、間違ったJavaコードがある可能性があります。ありがとう。 –