1.安裝 版本說明:Win10+R3.2.5+JKD1.7+eclipse-jee-mars-R-win32-x86_64 2.R中調用Java 載入rJava包,運行library(rJava),註意:在一個會話中,包只需載入一次。如果需要,你可以自定義啟動環境以自動載入會頻繁使用的那些包,下麵是 ...
1.安裝
版本說明:Win10+R3.2.5+JKD1.7+eclipse-jee-mars-R-win32-x86_64
install.packages("rJava")
2.R中調用Java
載入rJava包,運行library(rJava),註意:在一個會話中,包只需載入一次。如果需要,你可以自定義啟動環境以自動載入會頻繁使用的那些包,下麵是測試程式:
> library(rJava) > .jinit() #打開JVM > s <- .jnew("java/lang/String","Hello World!") #新建一個字元串 > s #參看s變數 [1] "Java-Object{Hello World!}"
說明:
.jinit()的作用是:初始化JVM,.jinit()在運行rJava任何方法之前必須啟動。
.jnew 創建新的Java對象。
## Not run: f <- .jnew("java/awt/Frame","Hello") .jcall(f,,"setVisible",TRUE)
上面的程式是創建了一個Frame視窗,設置的視窗可見並且可最大化和最小化,但是不可關閉,顯示如下:
.jcall calls a Java method with the supplied arguments.用來設置方法提供的參數;
.jcall("java/lang/System","S","getProperty","os.name") if (!nzchar(Sys.getenv("NOAWT"))) { f <- .jnew("java/awt/Frame","Hello") .jcall(f,,"setVisible",TRUE) }
3.Java中調用R
3.1設置環境變數
一定要建環境變數,不然運行eclipse時會報錯,環境變數(根據自己的安裝情況):
JAVA_HOME D:\ImprtantSoft\Java\jdk1.7 classpath %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%R_HOME%\library\rJava\jri path %R_HOME%\bin\x64;D:\ImprtantSoft\MySQL\MySQL Server 5.6\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%JAVA_HOME%\jre\bin\server R_HOME D:\ImprtantSoft\R\R-3.2.5
l 將D:\ImprtantSoft\R\R-3.2.5\library\rJava\jri下的三個jar包(JRIEngine.jar,JRI.jar,REngine.jar)拷到D:\ImprtantSoft\Java\jdk1.7\lib目錄下,即jdk目錄的lib下
l 打開eclipse,創建java project。同時將上述三個包導入工程中。
l D:\ImprtantSoft\R\R-3.2.5\library\rJava\jri\examples目錄下有兩個自帶測試代碼rtest.java和rtest2.java。
l 運行這兩個代碼,如果結果不報錯,說明調用成功。
3.2eclipse中創建項目