我在各种机器上使用python 2.7.0 -2.7.7并遇到了同样的问题。
我们有python程序从工具中调用一些java命令来读取数据 核心转储。 在正常情况下,代码运行良好,但如果核心转储很大,那么当python程序执行以下命令时,我们会遇到挂起问题: java -classpath toolview.jar:tool.jar -Dcom.ibm.java.diagnostics.plugins = toolcommands.jar com.java.diagnostics.tool.launcher.TOOLViewLauncher -core badleakcore.56130 command1
有关如何调试此方法或解决方法的任何建议吗?提前致谢。 如果我们在命令行上运行完全相同的命令,它将工作,但它也 由于大型核心转储需要很长时间。
This is the snippet of python code how we invoke java:
import logging, sys, argparse, time, platform
from subprocess import Popen, PIPE, STDOUT
def runTests(core, logger):
failure = []
#command1
msgs = ["Command: command1", "Expected: Pass without exceptions"]
logHeader(msgs, logger)
retlist = executeTOOL(core, "command1", logger, failure)
def executeIDDE(core, args, logger, failureList):
if platform.system().lower() == "windows":
sep = ";"
else:
sep = ":"
cp = 'toolview.jar'+sep+'tool.jar'
cmds = 'toolcommands.jar'
plugin = '-Dcom.ibm.java.diagnostics.plugins'
main = 'com.java.diagnostics.view.launcher.TOOLViewLauncher'
cmd = 'java -classpath ' + cp + ' ' + plugin + '=' + cmds + ' '
+ main + ' -core ' + core + ' ' + args
print(cmd)
proc = Popen(cmd, stdout=PIPE, stderr=STDOUT, shell=True)