是否有人與R一起工作並在那裏使用java代碼?我的意思是使用「RJAVA」包從R調用Java代碼。如何將Java對象的類轉換爲R(使用rjava包)
我創建我自己的包,在那裏我有jar代碼的jar文件。 (像那裏https://cran.r-project.org/web/packages/helloJavaWorld/vignettes/helloJavaWorld.pdf)
然後我有.r文件,我想調用java的方法。 問題是當我想返回「Java對象的類」。 「I」作爲整數或「S」作爲字符串沒有問題。我需要R中的Java類對象繼續使用它。有可能的?我發現我可以返回帶有返回值「L」的Java對象(例如「Ljava/lang/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
哪裏錯了嗎?有可能將Java對象的類返回給R,並繼續在那裏使用它?
如果程序包路徑正確,您的示例應該使用:c < - .jcall(a,「Lfcamp/input/Context;」,「testFunction2」)。您需要以「L」作爲前綴,後綴爲「;」全班名 – tokiloutok
我有「L」和「;」那裏。它仍然不起作用。如果你確定它是正確的,那麼我有可能錯誤的java代碼。謝謝。 –