我目前正在开发一个项目,我需要从Python代码调用一个相当大的jar文件。为此,我使用了jpype和一个较小的存根jar,代码完美无缺。但是,较大的jar需要大量内存,因此我在传递给-Xmx
调用的参数中设置startJVM
。但是,这在Python中使用could not reserve enough space for object heap error
崩溃了。
我用于-Xmx
的值是1099m,如果我将此值减1并使用1098m,则可以保留足够的内存并启动JVM。但是,要成功使用Jar,我需要超过1098.
在我的机器上调用startJVM
足够的内存时,通常至少3GB。此外,如果我使用java -Xmx2000m -jar
直接从命令行运行jar,那么它会启动而没有任何问题。这让我相信我可能做错了什么。
我在使用Python 2.7 32位和32位Java 8 JDK的64位Windows安装上运行代码。以下行是我用来从Python启动JVM的行:
startJVM("PATH", "-Xmx1099m", "-Djava.class.path=PATH_TO_JAR")
有没有人知道使用超过1089 MB堆空间的jpype启动JVM的可能解决方案?