1. 程式人生 > >java通過JRI呼叫R自定義指令碼

java通過JRI呼叫R自定義指令碼

自定義R指令碼作為資料引擎,用java執行:

package rJava;

//import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

public class DemoRJava {

    public static void main(String[] args) {
        callR();
    }

    static void callR() {
        Rengine re = new Rengine(new String[] { "--vanilla" }, false, null);
        if
(!re.waitForR()) { System.out.println("無法載入R."); return; } re.eval("source(\"d:/我的文件/桌面/CF.R\")"); System.out.println(re.eval("CF()")); re.end(); } }

在java專案中需要載入3個jar包:JRI.jar 、JRIEngine.jar 、 REngine.jar
這裡寫圖片描述

這三個包可在R的rJava包中找到:C:\Program Files\R\R-3.0.3\library\rJava\jri

且需要在系統環境變數中設定:
這裡寫圖片描述
(注:根據系統是32位的還是64位的選擇對應的jri.dll)

同時還需要在java專案中設定Run-Run Configurations:
這裡寫圖片描述
這裡寫圖片描述

即可執行成功!