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文件而没有运气。如何在没有错误的情况下运行它?
答案 0 :(得分:1)
我最近遇到过这个问题。我正在运行一个由uWSGI提供服务的Django应用程序。我实际上在运行uWSGI进程时将as-limit参数设置为512MB。在深入研究之后,我发现应用程序使用子进程运行的每个进程都将保持与uWSGI进程相同的操作系统限制。
将限制值增加到1GB后,我无法重现此问题。
也许这可以帮到你
答案 1 :(得分:0)
尝试明确设置堆大小:请参阅Could not reserve enough space for object heap
此设置也可能受环境变量的影响 - 您应该在批处理文件中打印变量(我认为Windows上的set
命令会执行此操作)。这将允许您查看在您尝试的两种情况下变量是否相同。
当然,您需要捕获批处理脚本的输出(或使其可见),以便执行比较。