2011-09-08 18 views
3

我有一个运行在JBoss AS 7下的Java应用程序,用于使用Runtime.getRuntime().exec(command)调用相当复杂的bash脚本。 bash脚本失败了,因为cvs报告说它内存不足(错误是“E342:内存不足!”)。从Runtime.getRuntime()。exec(command)运行的外部进程从哪里获取内存?

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

+0

这不是CVS,这是vim。 –

+0

是的,在谷歌搜索后,看起来vim崩溃了。这也不是操作系统内存不足的情况。我将RAM提高了2GB,并观察系统统计数据显示错误,并且有足够的内存可用。 – Phyxx

回答

0

原来这是vim。我正在运行命令empty下的调用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环境变量指向的脚本。

+0

你在做'cvs commit'吗?如果是这样,你可以'cvs commit -m“消息到这里。”' – msandiford

+0

cvs命令实际上是由另一个我无法修改的程序运行的,这需要解决方法。 – Phyxx

3

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

你应该看喜欢的东西:

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

向系统添加更多内存没有任何区别。显示错误时,系统至少有1GB可用RAM。无论如何,它看起来像一个vim问题。 – Phyxx

相关问题