Java與R語言的配置,呼叫
我是最近才接觸到了R語言,所以用起來有很多的問題,之前只是想單純想用java呼叫到R語言中的一些東西,沒有想到這個事情並不是想象的那麼簡單的。好了,閒話不多說,下面我來說說我在運用R的時候遇上的問題吧。
第一步,配置R的環境。
首先,需要下載一個RGUI的東西,這個東西在我的理解上就跟JVM一個樣子,我下載的版本是R 3.1.3(順便說一句,在64位系統下面的32位的RGUI和64位的RGUI都可以使用的,我的電腦系統是64位的)。下載安裝完成,我相信用java的朋友都把java的環境給配置好了,這裡我就不講java的配置了。開啟系統的環境變數,在CLASSPATH中新增D:\R-3.1.3\library\rJava\jri\;(就是你那個rjava包的路徑),然後在path中新增D:\R-3.1.3\bin\x64;D:\R-3.1.3\library\rJava\jri\x64;(我的系統是64位的,32位的把x64換成i386,但是強調一點你在多少位的JVM中執行R就得把R配置成多少位的,這樣子配置會省很多的事情),然後配置R_HOME:D:\R-3.1.3(安裝的路徑)。這樣子配置就算是把R的東西給配置好了。
第二步,下載rjava的包。
然後,你需要去下載你對應的rjava包,在RGUI中選程式包,選一個隔你最近的一個城市然後把rjava包下載(有時候下載不起,我在後面可以提供R 3.1.3版本的rjava包,這個包的版本不一樣後面在java中一樣的不能呼叫r)。把下載好的rjava包放在R-3.1.3\library下面(解壓了的資料夾),OK下載好了,位置也放好了,進入下一步。
第三步,在myeclipse中呼叫R。
先在rjava包jri中找到3個包,JRI.jar,JRIEngnie.jar和REngine.jar,將這3個包放在自己的java工程中匯入進去。然後在R-3.1.3\library\rJava\jri\examples中找到rtest.java和rtest2.java這兩個檔案,直接複製到自己的java工程中。先說說這兩種連線方式有什麼不同,rtest.java是直接把R的console引在了我們的java控制檯中,而rtest2.java是啟動一個R的一個服務,這兩種方式各有優勢,自己進行選擇,我選擇的是rtest.java的方式。說說這裡會遇到的問題,第一,可能會出現java.library.path的問題,那是因為沒有找到那個庫,可以在VM中給他指向你的那個庫在vm
arguments裡新增-
第四步,Spring MVC的專案中呼叫語言
可以說大多數的開發人員最重要的目的就是把這個rjava運用到專案中去。在這個步驟中,我將這個呼叫的方法寫成了一個工具類,但是我遇見了兩個大的問題,第一個,因為在專案是在tomcat中釋出的,所以tomcat在載入的時候沒有找到R的.dll檔案,這個問題可以通過System.out.println(System.getProperty("java.library.path"));
第五步,呼叫R的方法
這裡呼叫的方法是rengine.eval("xxxxx"),xxx就是你寫的R語言的程式碼。OK,介紹完畢。
最後就是我給大家提供的rjava包和R的安裝包,http://pan.baidu.com/s/1bnynNfp。