2013-03-14 51 views
0

我正在最新版本的r中使用包“dismo”构建大型物种分布模型。当我去使用代码来处理的基本模式:rJava内存错误

me <- maxent(x=train, p=p) 

我收到以下错误:

> Error in .jcall(mxe, "S", "fit", c("autorun", "-e", afn, "-o", dirout, 
> : java.lang.OutOfMemoryError: unable to create new native thread 

有在计算器一些讨论和关于此错误的互联网,但没有人可以解决如何解决r代码中的问题。任何关于这个问题的意见,将不胜感激。

干杯, 以色列

+1

我不知道r和rjava,所以我不确定JVM是如何运行的,但是它必须在Java运行的情况下运行。 JVM可以通过参数告诉它要使用多少内存。所以,这可能是你寻找的线索。 – 2013-03-14 02:39:14

+1

我有类似的错误,我不得不增加分配的内存使用 >选项(java.parameters =“-Xmx200m”) – 2013-04-20 00:48:26

+1

值得注意的是,为了增加内存的有效性,它必须在JVM启用之前完成:http ://www.bramschoenmakers.nl/en/node/726 – Ben 2013-04-24 04:05:25

回答

1

dismo包: 如果你想给最大墒更多的内存(运行它的Java虚拟机),就可以做到这一点 运行是这样的(1 GB )在加载dismo库之前。

options(java.parameters = "-Xmx1g") 

有人在Mac(Apple)计算机上使用此功能时报告出现问题。具体而言,会出现以下错误消息:

Error in .jcall(mxe, "S", "fit", c("autorun", "-e", afn, "-o", dirout, : java.lang.InternalError: Can’t start the AWT because 
Java was started on the first thread. Make sure StartOnFirstThread is not specified in your application’s Info.plist or on the command line. 

这是Mac上某些Java应用程序的已知问题。有两种解决方法,我们知道:

1)在运行库rJava之前运行Sys.setenv(NOAWT = TRUE)(如果rJava未加载,这是dismo所做的)。 2)使用JGR接口(基于Java的R GUI)。您可以从这里安装JGR: