2011-09-08 20 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

相關問題