使用rJava在R中调用java方法

时间:2017-10-30 13:10:43

标签: java r rjava

我使用rJava从R调用java代码,尝试从SPMF工具调用算法。我尝试使用this question中的包装函数,但这不适用于SPMF代码。

这是我的R代码:

   library(rJava)
   .jinit()
   .jaddClassPath ( "C:/mydrive/eclipse-workspace/myfile/src")
   print(.jclassPath())
   obj <- .jnew("AlgoFPGrowth_Strings")
   s <- .jcall(obj, returnSig= "V", method="runAlgorithm", 
   "input.csv","output.txt") ,  0.4 )

它给了我错误,方法runAlgorithm签名(D)V找不到

这是java中的主要内容:

    public static void main(String[] args) throws Exception {
    AlgoFPGrowth_Strings fpwindow=new AlgoFPGrowth_Strings();
    String input="input.csv";
    String output="output.txt";
    double minsupp = 0.4; 
    fpwindow.runAlgorithm( input,  output,  minsupp);
    fpwindow.printStats();

} 

我试图将returnSig值更改为S和Ljava / lang / String;但我得到了同样的错误,找不到方法

当我使用简单的方法将代码应用于不同的java代码时,它是否有任何想法如何更改我的代码?

1 个答案:

答案 0 :(得分:0)

尝试以下方法,

  1. 更改您的jclassPath,您可以在其中直接指定jar文件的完整路径名,包括jar名称,例如/home/user/mypath/myclass_name.jar

  2. 或者,您可以将jar文件解压缩到文件夹中,并在jclassPath中引用该路径。

  3. 如果,上述方法不起作用,

    1. 尝试编写&#39; runAlgorithm&#39;您正在调用的同一类中的方法。我遇到了调用外部库/类的问题。