我尝试在Java中运行R脚本,因此我安装了JRI。并运行示例,我在64位windows 7上使用Eclipse。示例代码的一部分如下:
public static void main(String[] args) {
System.out.println("Creating Rengine (with arguments)");
Rengine re=new Rengine(args, false, null);
System.out.println("Rengine created, waiting for R");
if (!re.waitForR()) {
System.out.println("Cannot load R");
return;
}然而,每次我运行它。在打印出"Creating Rengine (with arguments)“从未成功打印出"Rengine created,waiting for R”后,它停止了。
我不知道什么是正确的输入参数,我已经尝试在eclipse运行配置的Program参数下添加"--no-save“,但仍然没有帮助。
有什么建议吗?非常感谢
发布于 2011-04-29 12:18:08
参考:http://www.rforge.net/JRI/
必须设置启用
我自己的笔记:
在Mac上安装R:
参考:http://cran.r-project.org/mirrors.html参考:http://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html
从http://cran.csiro.au/下载了MacOSX二进制R-2.13.0.pkg
在Mac OS X上安装Java Interface for R (JIR)
参考:http://www.rforge.net/JRI/
JIR现在是rJava的一部分。
> install.packages("rJava")
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://cran.csiro.au/bin/macosx/leopard/contrib/2.13/rJava_0.8-8.tgz'
Content type 'application/x-gzip' length 769006 bytes (750 Kb)
opened URL
==================================================
downloaded 750 Kb
The downloaded packages are in
/var/folders/ZZ/ZZ7tAIJsFU8FDfPPp7H53++++TM/-Tmp-//RtmpCHz9Mh/dow
> library(rJava)
> .jinit()
> s <- .jnew("java/lang/String", "Hello World!")
> print(s)
[1] "Java-Object{Hello World!}"在Mac OS X上使用Eclipse运行JRI示例Java
将rJava/jri/examples/rtest.java复制到Eclipse JRI/src/。将jri目录中的JRI.jar复制到JRI/lib/,并将其添加到构建路径中。
rtest.java可以编译,但不能作为Java应用程序运行。
显然,它需要由./run rtest运行。
在检查了rJava包(在./jri/中)附带的" run“外壳脚本之后,我已经在Eclipse run configuration中设置了这些脚本:
环境:
R_HOME = /Library/Frameworks/R.framework/Resources
PATH=/Library/Frameworks/R.framework/Resources/bin/此外,示例运行shell脚本还设置了以下环境变量:
R_INCLUDE_DIR=Library/Frameworks/R.framework/Resources/include
R_SHARE_DIR=Library/Frameworks/R.framework/Resources/share
R_DOC_DIR=Library/Frameworks/R.framework/Resources/doce
JRI_LID_PATH=Library/Frameworks/R.framework/Resources/lib:/Library/Frameworks/R.framework/Resources/binVM参数:
-Djava.library.path=/Library/Frameworks/R.framework/Resources/library/rJava/jri/JRI.jar现在在构建路径中被引用,即:
/Library/Frameworks/R.framework/Resources/library/rJava/jri/JRI.jar. 这会自动出现在run configuration中的-cp选项卡下。
此外,运行配置还需要一个程序参数:--save, --no-save or --vanilla。
发布于 2011-01-05 03:14:21
它很可能找不到jri.dll或R.dll。如果您什么也看不到,甚至连异常都没有,那么JVM就会崩溃。查找像hs_pid*这样的文件,它应该会告诉您哪个库是罪魁祸首。
发布于 2012-06-12 14:56:50
我在Windows上与R的斗争中发现了这个问题,尽管在Linux上它刚刚起作用。
我也发现我得到了“创建Rengine (带参数)”,但没有进一步的内容。
它找到了jri.dll和R.dll,这是我能够证明的:
找不到JRI本机库!请确保JRI本机库位于java.library.path中列出的目录中。
java.lang.UnsatisfiedLinkError: java.library.path中没有jri
(复制回来时,请确保采用正确的32位或64位版本,以避免"Can't load IA 32-bit .dll on a AMD64- bit platform“类型错误)
找不到JRI本机库!请确保JRI本机库位于java.library.path中列出的目录中。
java.lang.UnsatisfiedLinkError:当前DIR\jri.dll:找不到依赖库
在正确设置了这两件事之后(并且没有生成hs_pid*文件),我发现问题在于run.bat中缺少R_HOME。添加
set R_HOME=C:\Program Files\R\R-2.15.0\修复了它,现在它似乎对我都起作用了。我不需要在脚本中添加--save、--no-save或--vanilla。此外,它有'runtest‘硬编码,所以./run.bat runtest2将不会驻留。
简而言之: Windows脚本被破坏了(而Linux的“run.bat”脚本是开箱即用的)。
https://stackoverflow.com/questions/4894002
复制相似问题