下载
https://cran.r-project.org/bin/windows/base/
安装打开Rgui.exe
D:\Program Files\R\R-3.6.0\bin\x64
命令提示符输出
脚本文件test.R
# My first program in R Programming
myString <- "Hello, World!"
print ( myString)
启动Rserver
> library(Rserve)
> Rserve()
pom.xml
<!-- https://mvnrepository.com/artifact/org.rosuda.REngine/Rserve -->
<dependency>
<groupId>org.rosuda.REngine</groupId>
<artifactId>Rserve</artifactId>
<version>1.8.1</version>
</dependency>
Test.java
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.Rserve.RConnection;
public class Test {
public static void main(String[] args) {
try {
RConnection c = new RConnection();
REXP x = c.eval("R.version.string");
System.out.println(x.asString());
} catch (Exception e) {
e.printStackTrace();
}
}
新建程序脚本myAdd.R
myAdd<-function(x,y){ sum=x+y; return(sum)}
java调用myAdd
/**
* @author Moses
* @Date 2019/4/29
*/
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.Rserve.RConnection;
public class Test {
public static void main(String[] args) {
try {
RConnection c = new RConnection();
REXP x = c.eval("R.version.string");
System.out.println(x.asString());
c.eval("source('D:/temp/myAdd.R')");
int num1 = 20;
int num2 = 10;
int sum = c.eval("myAdd(" + num1 + "," + num2 + ")").asInteger();
System.out.println("the sum=" + sum);
} catch (Exception e) {
e.printStackTrace();
}
}
}