Java 如何解决;错误:尚不支持长向量:qap_encode.c:36;?
我正在尝试使用Rserve将java与R连接起来 Java:1.8.0_151Java 如何解决;错误:尚不支持长向量:qap_encode.c:36;?,java,r,rstudio,rjava,rserve,Java,R,Rstudio,Rjava,Rserve,我正在尝试使用Rserve将java与R连接起来 Java:1.8.0_151 R:3.5.0 操作系统:Mac 10.13.4 HighSierra 为了将R与Java连接起来,我在RStudio上键入了以下内容 install.packages("Rserve") library(Rserve) Rserve(args="--no-save") 事情进展顺利,我很高兴 然后我跳回Java(可以说是JavaEclipse)并继续键入。下面是我在Eclipse上所做的 package rser
R:3.5.0
操作系统:Mac 10.13.4 HighSierra 为了将R与Java连接起来,我在RStudio上键入了以下内容
install.packages("Rserve")
library(Rserve)
Rserve(args="--no-save")
事情进展顺利,我很高兴
然后我跳回Java(可以说是JavaEclipse)并继续键入。下面是我在Eclipse上所做的
package rserve;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.REngineException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class WordCloud1 {
public static void main(String[] args) throws REngineException,
REXPMismatchException {
RConnection c = new RConnection();
String path = "/Users/JinhoShin/Desktop/study/R/r_temp2";
String file = "seoul_new.txt";
c.parseAndEval("library(KoNLP)");
c.parseAndEval("useSejongDic()");
c.parseAndEval("library(wordcloud)");
c.parseAndEval("library(RColorBrewer)");
c.parseAndEval("setwd('" + path + "')");
c.parseAndEval("data1=readLines('" + file + "')");
c.parseAndEval("data2 = sapply(data1,extractNoun,USE.NAMES=F)");
c.parseAndEval("data3 = unlist(data2)");
c.parseAndEval("data3=gsub('seoul','',data3)");
c.parseAndEval("data3=gsub('request','',data3)");
c.parseAndEval("data3=gsub('place','',data3)");
c.parseAndEval("data3=gsub('transportation','',data3)");
c.parseAndEval("data3=gsub(' ','',data3)");
c.parseAndEval("data3=gsub('-','',data3)");
c.parseAndEval("data3=gsub('OO','',data3)");
c.parseAndEval("write(unlist(data3),'seoul_2.txt')");
c.parseAndEval("data4 = read.table('seoul_2.txt')"); ########this is what blows me up
c.parseAndEval("wordcount=table(data4)");
c.parseAndEval("palete = brewer.pal(9,'Set3')");
c.parseAndEval(
"wordcloud(names(wordcount),freq = wordcount,scale=c(5,1),rot.per=0.25, min.freq = 1," +
" random.order=F, random.color = T, colors=palete)");
c.parseAndEval("savePlot('0517seoul.png', type = 'png')");
c.parseAndEval("dev.off()");
c.close();
}
}
正如你从代码中注意到的
c.parseAndEval("data4 = read.table('seoul_2.txt')"); => at rserve.WordCloud1.main(WordCloud1.java:30)
我不知道为什么它不能读我的文本文件,尽管它可以写那个文件
这就是JavaEclipse控制台一直向我展示的内容
Exception in thread "main" org.rosuda.REngine.REngineException: eval failed
at org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:499)
at org.rosuda.REngine.REngine.parseAndEval(REngine.java:108)
at rserve.WordCloud1.main(WordCloud1.java:30)
Caused by: org.rosuda.REngine.Rserve.RserveException: eval failed
at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:261)
at org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:497)
... 2 more
Error: long vectors not supported yet: qap_encode.c:36
Fatal error: unable to initialize the JIT
这就是RStudio一直向我展示的
Exception in thread "main" org.rosuda.REngine.REngineException: eval failed
at org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:499)
at org.rosuda.REngine.REngine.parseAndEval(REngine.java:108)
at rserve.WordCloud1.main(WordCloud1.java:30)
Caused by: org.rosuda.REngine.Rserve.RserveException: eval failed
at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:261)
at org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:497)
... 2 more
Error: long vectors not supported yet: qap_encode.c:36
Fatal error: unable to initialize the JIT
我尽了我所能来解决这个问题,但我仍然站在同一个位置上 仅供参考:当我仅仅在Rstudio上做这件事时,它没有引起任何问题。我试图改变编码方式,也可能与那些有相同问题的人有关,试着阅读