Java 外部进程从Runtime.getRuntime()运行。exec(命令)从何处获取内存?

Java 外部进程从Runtime.getRuntime()运行。exec(命令)从何处获取内存?,java,linux,jboss,cvs,Java,Linux,Jboss,Cvs,我有一个在JBossAS7下运行的Java应用程序,用于使用Runtime.getRuntime().exec(command)调用相当复杂的bash脚本。bash脚本失败,因为cvs报告它的内存不足(确切地说,错误是“E342:内存不足”) 因此,我应该增加JBoss AS可用的内存量(使用JAVA_OPTS=“-Xms256m-Xmx2048m”或类似的东西),还是这表明操作系统本身内存不足?操作系统内存不足。增加JBoss的堆大小只会让事情变得更糟 您应该关注以下方面: 添加更多内存 增

我有一个在JBossAS7下运行的Java应用程序,用于使用
Runtime.getRuntime().exec(command)
调用相当复杂的bash脚本。bash脚本失败,因为cvs报告它的内存不足(确切地说,错误是“E342:内存不足”)


因此,我应该增加JBoss AS可用的内存量(使用JAVA_OPTS=“-Xms256m-Xmx2048m”或类似的东西),还是这表明操作系统本身内存不足?

操作系统内存不足。增加JBoss的堆大小只会让事情变得更糟

您应该关注以下方面:

  • 添加更多内存
  • 增加交换磁盘空间量
  • 减少运行的其他应用程序

    • 原来是维姆。我正在运行在命令下调用cvs的脚本,这可能导致了问题。最后,我创建了一个脚本,用一条通用消息编辑消息文件:

      #!/bin/sh
      # Add a generic message
      echo "Some Generic Message" > $1
      # Update the time stamp. If you don't, you'll get a
      # "Log message unchanged or not specified" error.
      # the cvs timestamp comparison routine has a resolution
      # of one second, so sleep to ensure that the timestamps
      # are detected as being different.
      sleep 1
      touch $1
      exit 0
      

      然后将EDITOR或CVSEDITOR环境变量设置为指向脚本。

      是的,在谷歌搜索之后,vim似乎崩溃了。这也不是操作系统内存不足的情况。我将ram增加了2GB,并在显示错误时观察了系统的统计数据,内存充足。向系统添加更多内存没有任何区别。显示错误时,系统至少有1GB可用ram。在任何情况下,它看起来都像是vim问题。您是否正在执行
      cvs提交
      ?如果是这样的话,您可以在此处显示“cvs commit-m”消息。cvs命令实际上是由另一个我无法修改的程序运行的,这需要解决方法。