我在Windows机器Seven上的JVM Oracle版本7.x下运行Java。我可以通过eclipse或命令行运行Java调用R.但我陷入了一个与GIS相关的功能,名为readOGR
,在R控制台下运行良好,但我无法弄清楚Java环境发生了什么。我正在寻找从前面提到的“Census2011_NUTS3_generalised20m”到readOGR
函数获取数据内容,但经过大量研究后,我决定向社区寻求帮助。甚至其他人也可能有类似的问题。
我知道,可能我忘记了一些事情,但所有的建议和想法,甚至是这种方法的不同之处都是非常受欢迎的。
下面附上显示我期望的代码(在R控制台上的顶部代码),在底部,代码尝试执行类似的代码。
以下代码在R控制台上运行良好:
install.packages('rgdal')
install.packages('ggplot2')
install.packages('util')
library(rgdal)
library(ggplot2)
library(utils)
irelandCensusFile_ <- readOGR("C:/Users/solver/Desktop/geographical_distribution/shinyWebApp/Census2011_NUTS3_generalised20m", layer = "Census2011_NUTS3_generalised20m")
View(irelandCensusFile_ )
以下代码在JAVA上效果不佳:
Rengine re = new Rengine(null, false, null);
REXP x = null;
re.eval("install.packages('utils')");
re.eval("install.packages('rgdal')");
re.eval("install.packages('ggplot2')");
re.eval("library(rgdal)");
re.eval("library(ggplot2)");
re.eval("library(utils)");
re.eval("ogrDrivers()");
String path = "C:\\Users\\solver\\Desktop\\geographical_distribution\\shinyWebApp\\Census2011_NUTS3_generalised20m\\";
String name = "Census2011_NUTS3_generalised20m";
System.out.println(x);
//x=re.eval("readOGR(\""+path+"\", layer = \""+name+"\")");
re.assign("x"," a <- readOGR(\""+path+"\", layer = \""+name+"\")");
System.out.println(re.eval("x"));
PS:我对rJava
集成没有任何问题,只需使用此功能。