2013-03-14 50 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: