我正在尝试构建一个包含R代码的java项目。主要逻辑背后是我想在同一个项目中自动化数据结构和数据分析。部分我能够做到这一点。我将R连接到Java,并且我的R代码运行良好。我在本地机器上完成了所有设置,并根据需要为其提供所有输出。由于数据集很大,我试图在亚马逊服务器上运行这个数据集。但是当我将它转移到服务器时,我的项目无法正常工作。它无法执行library(XLConnect), library(rJava)
。当我在我的java项目中调用这两个库时,它会崩溃。独立的R代码正在运行并给我输出。我能为此做什么,以及如何解决这个错误。请帮我解决这个问题。Java和R集成
我的Java代码是
import java.io.InputStreamReader;
import java.io.Reader;
public class TestRMain {
public static void main(String[] arg)throws Exception{
ProcessBuilder broker = new ProcessBuilder("R.exe","--file=E:\\New\\Modified_Best_Config.R");
Process runBroker = broker.start();
Reader reader = new InputStreamReader(runBroker.getInputStream());
int ch;
while((ch = reader.read())!= -1)
System.out.print((char)ch);
reader.close();
runBroker.waitFor();
System.out.println("Execution complete");
}
}
而在Modified_Best_Config.R
我写这些代码
library('ClustOfVar');
library("doBy");
library(XLConnect)
#library(rJava)
#library(xlsx)
path="E:/New/";
############Importing and reading the excel files into R##############
Automated_R <- loadWorkbook("E:/New/Option_Mix_Calculation1.xlsx")
sheet1 <- readWorksheet(Automated_R, sheet = "Current Output")
sheet2 <- readWorksheet(Automated_R, sheet = "Actual Sales monthly")
sheet3 <- readWorksheet(Automated_R, sheet = "Differences")
#####################Importing raw Data###############################
optionData<- read.csv(paste(path,"ModifiedStructureNewBestConfig1.csv",sep=""),head=TRUE,sep=",");
nrow(optionData)
optionDemand=sapply(split(optionData,optionData$Trim),trimSplit);
optionDemand1=t(optionDemand[c(-1,-2),]);
optionDemand1
################Calculating the equipment Demand####################
optionDemand2<-t(optionDemand2[c(-1,0)]);
Rownames <- as.data.frame(row.names(optionDemand2))
writeWorksheet(Automated_R,Rownames, sheet = "Current Output", startRow = 21, startCol = 1)
writeWorksheet(Automated_R,optionDemand2, sheet = "Current Output", startRow = 21, startCol = 2)
saveWorkbook(Automated_R)
但Java是,这些行后停止工作。
library("doBy");
整套代码在本地机器上运行良好。但是,无论何时我试图在亚马逊服务器上运行它都没有运行。单独在R中,此代码在服务器上运行。我有更多的R代码运行没有任何错误。我能做些什么,请帮助我。
这听起来像你可能没有安装在你的服务器实例上的那些软件包,但你可以请尝试发布一些代码来重现这个问题,以便其他人可以更巧妙地解决它? –
这可能有助于:[在Ubuntu/EC2上安装rJava和其他软件包](http://support.rstudio.org/help/discussions/problems/749-installing-rjava-and-other-packages-on-ubuntu-ec2 ) – Ben
你说“单独在R这个代码在服务器上运行。”您是使用RStudio服务器还是在终端上运行R直接在您遇到此问题的同一Amazon服务器上运行R? –