0
Error occurred during initialization of VM.
Could not reserve enough space for object heap.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

bat 文件有以下命令:

java -cp stanford-corenlp-3.2.0.jar;stanford-corenlp-3.2.0-models.jar;xom.jar;joda-time.jar;jollyday.jar -Xmx3g edu.stanford.nlp.pipeline.StanfordCoreNLP -props props.properties -filelist filelist.txt

它可以在 cmd 窗口中正常工作,没有错误!

我有以下python代码:

import os
import subprocess

os.chdir('C:/Users/Christos/Documents/stanford-corenlp-full-2013-06-20/')

p = subprocess.Popen(r'start cmd /c run_mouskos.bat', shell=True)

p.wait()

print 'done'

我还尝试了各种其他方法来从 python 执行 bat 文件,但没有成功。我怎样才能在没有错误的情况下运行它?

4

2 回答 2

1

我最近遇到了这个问题。我正在运行一个由 uWSGI 提供服务的 Django 应用程序。我实际上正在运行将 as-limit 参数设置为 512MB 的 uWSGI 进程。在对此进行挖掘之后,我发现应用程序使用子进程运行的每个进程都将保持与 uWSGI 进程相同的操作系统限制。

将 as-limit 的值增加到 1GB 后,我无法重现此问题。

也许这可以帮助你

于 2015-01-22T19:24:20.847 回答
0

尝试显式设置堆大小:请参阅无法为对象堆保留足够的空间

此设置也可能受到环境变量的影响 - 您应该在批处理文件中打印变量(我认为setWindows 上的命令会这样做)。这将允许您查看在您尝试过的两种情况下变量是否相同。

当然,您需要捕获批处理脚本的输出(或使其可见)才能执行比较。

于 2013-10-15T10:41:32.993 回答