使用 rJava 在 R 中调用 java 方法
Call a java method in R using rJava
我使用 rJava 从 R 调用 java 代码,试图从 SPMF tool. I tried to use a wrapper function as in , but this did not work with the 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 )
它给我错误,未找到带有签名 (D)V 的方法 runAlgorithm
这是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 代码时,我知道如何更改我的代码吗?
试试下面的方法,
更改您的 jclassPath
,您可以在其中直接指定 jar 文件的完整路径名,包括 jar 名称,比如 /home/user/mypath/myclass_name.jar
或者,您可以将 jar 文件解压缩到一个文件夹中,然后在 jclassPath
中引用该路径。
如果上述方法不起作用,
- 尝试在您调用的 class 中编写 'runAlgorithm' 方法。我在调用外部 libraries/classes 时遇到了问题。
我使用 rJava 从 R 调用 java 代码,试图从 SPMF tool. I tried to use a wrapper function as in
这是我的 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 )
它给我错误,未找到带有签名 (D)V 的方法 runAlgorithm
这是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 代码时,我知道如何更改我的代码吗?
试试下面的方法,
更改您的
jclassPath
,您可以在其中直接指定 jar 文件的完整路径名,包括 jar 名称,比如/home/user/mypath/myclass_name.jar
或者,您可以将 jar 文件解压缩到一个文件夹中,然后在
jclassPath
中引用该路径。
如果上述方法不起作用,
- 尝试在您调用的 class 中编写 'runAlgorithm' 方法。我在调用外部 libraries/classes 时遇到了问题。