gpt4 book ai didi

Python 使用子进程 :Invalid maximum heap size 启动 Java 应用程序

转载 作者:行者123 更新时间:2023-11-30 09:15:10 29 4
gpt4 key购买 nike

我正在尝试使用 subprocess 模块通过 Python 启动 Java 应用程序。我不是 Python 的新手,但我是 subprocess 模块的新手。当我尝试运行这段代码时:

import subprocess as sp
proc = sp.Popen(["java", "-Xmx1536M -Xms1536M", "-jar /home/bekk/MServer/ForgeBukkit/MCPC.jar"],stdin=sp.PIPE,stdout=sp.PIPE,)

命令:

java -Xmx1536M -Xms1536M -jar /home/bekk/MServer/ForgeBukkit/MCPC.jar

在终端中输入时运行正确,所以我知道它可以工作。从 Python 运行它似乎是一个问题。关于我的问题可能是什么的任何想法?

最佳答案

您将 "-Xmx1536M -Xms1536M" 作为单个参数传递。

这不等同于这个 shell 命令:

java -Xmx1536M -Xms1536M -jar /home/bekk/MServer/ForgeBukkit/MCPC.jar

...但是对于这个:

java '-Xmx1536M -Xms1536M' -jar /home/bekk/MServer/ForgeBukkit/MCPC.jar

因此,Java 将获取 '-Xmx1536M -Xms1536M' 作为它的 argv[1],而不是在 argv[1]argv[2] 中的下一个。当您尝试将 mx 设置为 '1536M -Xms1536M' 时,它会解释一个巨大的标志 arg,这不是有效的最大堆大小。

要修复它,请将每个参数放在列表中自己的字符串中:

["java", "-Xmx1536M", "-Xms1536M", "-jar", "/home/bekk/MServer/ForgeBukkit/MCPC.jar"]

关于Python 使用子进程 :Invalid maximum heap size 启动 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20061633/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com