2009-11-10 47 views
4

我有一个我想用PHP执行的jar文件,但是当我运行脚本时,我得到的是以下错误:无法为对象堆预留足够的空间。我做了一些搜索,似乎我得到这个,因为该命令没有在登录shell中执行。如果是这种情况,我该怎么做?我已经尝试shell_exec()exec()两者都产生相同的错误。PHP,shell命令和jar文件

感谢您的帮助!

+0

你正在运行什么样的jar。是你自己的程序还是库jar? – Treby 2009-11-10 02:01:31

+0

你有什么样的设置来运行它?这是一个服务器,您可以根据自己的选择配置和运行自己的东西?或者它是某种类型的网络主机,您在使用它时可能会受到更多限制?解决这个问题的方法有很多,但这取决于你需要处理的问题。 – Brian 2009-11-10 03:24:28

回答

2

使用exec()通常会正常工作;然而,在你的情况下,它看起来像Java不能分配足够的内存来启动(因此错误信息)。如果您运行的是内存有限且没有交换空间的虚拟机,那么即使是最简单的Java程序也无法运行。

第一步是查看java是否在您的机器上运行。尝试只是运行

java -version 

如果失败,出现同样的错误,你必须增加的可用内存量以某种方式(如购买计划,更多的内存或交换空间)。如果你不能,那么如果你用-Xmx16m(设置最大堆大小为16兆字节)或者甚至更小来限制最大堆大小,那么可能会能够通过,但在这种情况下,你的jar文件可能不够用内存运行!