小编pra*_*rao的帖子

rjava .jcall问题

我目前正在开发一个R包以在R中集成Java代码。但是,在尝试正确调用Java类方法时遇到了问题。到目前为止,我已经独立开发了Java程序并将其编译为类文件,然后将其打包为jar文件。我的代码示例如下:

library(rJava)

.jinit()

.onLoad <- function(lib, pkg) {
    pathToSdk <- paste(system.file(package = "mailViz") , "C:\\path\\to\\libs", sep="")

    jarPaths <- c(paste(pathToSdk, "mail.jar", sep=""),
            paste(pathToSdk, "mailReader.jar", sep="")
    )    
    .jpackage(pkg, morePaths=jarPaths)
    attach( javaImport( c("java.lang", "java.io", "java.mail", "java.util", "java.text")))
    packageStartupMessage( paste( "mailViz loaded. The classpath is: ", paste(.jclassPath(), collapse=" " ) ) )        
}


# get method arguments for the class
#.jmethods("mailReader","readEmailInfo")

z=.jcall("mailReader", "Ljava/lang/String;", "readEmailInfo", "username", "password")
Run Code Online (Sandbox Code Playgroud)

但是,当我执行.jcall函数时,会收到错误消息:

Error in .jcall("mailReader", "Ljava/lang/String;", "readEmailInfo", "username",  : 
  method readEmailInfo with signature (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; not found
Run Code Online (Sandbox Code Playgroud)

我尝试了多种更改参数的方法,但是没有运气。当我在类文件上运行.jmethods(“ mailReader”)时,它将列出所有可用的方法:

[2] …
Run Code Online (Sandbox Code Playgroud)

r rjava

5
推荐指数
1
解决办法
2692
查看次数

标签 统计

r ×1

rjava ×1