调用java“from Python”时分配超过4gb的堆空间时出现问题

2024-09-29 19:28:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用系统操作系统从python调用运行jar文件。 jar文件需要很大的堆空间,因此我使用Xmx分配4gb的堆空间。 当我执行命令时 “java-Xms4096m-Xmx4096m-jar凸轮轴网.jar网.txt" 从命令行可以正常执行,但是当我通过操作系统,只有在分配的内存小于4Gb时才有效,否则无法执行。 有什么解决办法吗?在

我的意思是出现一个命令窗口,指示系统操作系统已经被调用,然后它就消失了,如果有返回的话,我会检查错误代码。但是,如果xmx,xms设置为较低的值,则不会遇到任何问题。在

好的,我检查了两个版本,有一点不同,通过python调用的是Java热点客户机VM混合模式,共享,而通过普通命令行调用的是Java热点64位服务器

怎么做系统操作系统在python中,调用正确的64位服务器。在

更新:我尝试使用subprocess模块,但是java返回的版本与系统操作系统在


Tags: 文件命令行版本服务器系统空间java执行命令
3条回答

只是一个建议,但是尝试使用subprocess.call()而不是操作系统(),it is preferred并可能处理您遇到的问题。我很想知道是不是。。。在

如果不知道更多的细节(比如你在哪个操作系统上),很难确定,但是我猜你使用的是32位版本的Python,这意味着当你启动Java时,你也会得到32位版本,堆大小限制为4GB。在

若要测试这种情况,请比较从命令行运行和从Python脚本运行时java -version的输出。在

我在从32位python启动64位Java时遇到了同样的问题。我使用davewebb的建议解决了这个问题,他建议将完整路径设置为64位Java.exe在python脚本中。这很好地工作,所以不需要使用64位Python

相关问题 更多 >

    热门问题