【问题标题】:rJava Memory ErrorrJava 内存错误
【发布时间】:2013-03-14 01:50:54
【问题描述】:

我正在使用最新版本的 r 中的包“dismo”构建一个大型物种分布模型。当我去使用代码处理基本模型时:

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

stackoverflow 和互联网上有一些关于此错误的讨论,但似乎没有解决如何解决 r 代码中的问题。对此问题的任何意见将不胜感激。

干杯, 以色列

【问题讨论】:

  • 我不了解 r 和 rjava,所以我不确定 tje JVM 是如何运行的,但如果 Java 正在运行,它必须是。 JVM 可以接受参数告诉它要使用多少内存。所以,这可能是你看的线索。
  • 我遇到了类似的错误,我不得不使用 > options(java.parameters = "-Xmx200m") 增加分配的内存
  • 值得注意的是,要使内存增加有效,必须在启用 JVM 之前完成:bramschoenmakers.nl/en/node/726

标签: java r rjava


【解决方案1】:

来自dismo 包: 如果你想给 MaxEnt(运行它的 Java 虚拟机)更多的内存,你可以这样做 在加载 dismo 库之前运行类似的东西(1 GB)。

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:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多