2013-02-14 72 views
0

这是关于在Mac上将JAVA与R结合使用的my previous post之一。我的应用程序依赖于R运行。我安装了Java,Java版本为“1.6.0_37”。我安装了“R”,R版本2.15.1。现在我需要包含在rJava中的JRI。在Mac上的Java应用程序中使用R

里面的R我已经运行以下

install.packages('rJava',,' http://www.rforge.net/ ')

这是输出:

install.packages('rJava',,'http://www.rforge.net/') 
trying URL 'http://www.rforge.net/bin/macosx/leopard/contrib/2.15/rJava_0.9-4.tgz' 
Content type 'application/x-gzip' length 506489 bytes (494 Kb) 
opened URL 
================================================== 
downloaded 494 Kb 


The downloaded binary packages are in 
    /var/folders/gz/1jwm65h12132yq8_1wdsl9cr0000gn/T//RtmpGHpTYR/downloaded_packages 

我在哪里何去何从?

当起tomcat,我发现了以下错误:

Cannot find JRI native library! 
Please make sure that the JRI native library is in a directory listed in java.library.path. 

    java.lang.UnsatisfiedLinkError: no jri in java.library.path 
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758) 
     at java.lang.Runtime.loadLibrary0(Runtime.java:823) 
     at java.lang.System.loadLibrary(System.java:1045) 
     at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:9) 
     at com.visibleequity.servlets.VisibleEquityServlet.init(VisibleEquityServlet.java:55) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:160) 
     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1274) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5320) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114) 
     at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1673) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:680) 

UPDATE 13年2月15日试图设置环境变量后...

我的道路:

DAVIDs-MacBook-Pro-2:~ dave$ echo $PATH 
/opt/local/bin:/opt/local/sbin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin:/usr/local/mysql/bin:/usr/libexec/java_home:/Library/Frameworks/R.framework/Versions/2.15:/Library/Frameworks/R.framework/Versions/2.15/Resources/library/rJava/jri 

environment variables

JAVA_HOME location

R_HOME and JRI location

仍然得到上述错误。

+1

正如错误告诉你的,你必须正确设置环境,包括'java.library.path'和许多其他的东西('R_HOME'等)。你可以通过在'R'中运行'system.file(“jri”,package =“rJava”)'来找到JRI的位置。 – 2013-02-14 18:05:20

+0

@SimonUrbanek好吧,我已经设置了R_HOME&JAVA_HOME ...通常在Windows上,这将是我们的设置。路径:%JAVA_HOME%\ bin;%R_HOME%\ bin;%R_HOME%\ library \ rJava \ jri; JAVA_HOME:C:\ Program Files \ Java \ jdk1.6.0_17 R_HOME:C:\ Program Files \ R \ R-2.10.0位置/如何访问路径? – DaveG 2013-02-14 18:48:18

回答

1

确保Tomcat运行的用户具有环境变量。

+0

你是对的。使用tomcat我没有必要在我的Mac上设置JAVA_HOME或R_HOME,直到现在,所以我不清楚如何做到这一点。 (我在窗户上做过一吨)。搜索谷歌和堆栈后,它出现与山狮已经有一些变化在哪里/如何设置这些,所以我找到了一个实用工具,您可以设置环境变量http://diaryproducts.net/EnvPane(所以我已经设置了JAVA_HOME和R_HOME)。现在,我在哪里编辑路径,就像我通常在Windows中执行的那样? (请参阅我上面的注释) – DaveG 2013-02-15 14:20:22

+0

PATH env变量。全部大写。 – 2013-02-15 14:25:52

+0

拉里,看我的编辑我的问题。我以为我编辑过PATH,但我必须映射变量错误。看到我上面的更新(与picures)....感谢您的帮助。 – DaveG 2013-02-15 14:53:52