Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个Python脚本调用的Python脚本作为子进程执行.jar文件时出错_Java_Python_Jar_Subprocess - Fatal编程技术网

Java 从另一个Python脚本调用的Python脚本作为子进程执行.jar文件时出错

Java 从另一个Python脚本调用的Python脚本作为子进程执行.jar文件时出错,java,python,jar,subprocess,Java,Python,Jar,Subprocess,这是对我发布的已解析帖子的扩展。我有一个python脚本,其中包含以下jar执行代码(以及一些其他代码): python_file2.py import os cmd_txt = "ssh -i pem_file.pem user@" + host_name + " 'cd /user/folder1/ && java -cp jar-file.jar'" os.system(cmd_txt) ret = subprocess.Popen([sys.executable,"py

这是对我发布的已解析帖子的扩展。我有一个
python脚本
,其中包含以下
jar
执行代码(以及一些其他代码):

python_file2.py

import os
cmd_txt = "ssh -i pem_file.pem user@" + host_name + " 'cd /user/folder1/ && java -cp jar-file.jar'"
os.system(cmd_txt)
ret = subprocess.Popen([sys.executable,"python_file2.py"])
现在,这个
python脚本
文件(python_file2.py)被称为另一个
python脚本
子进程

Main_script.py

import os
cmd_txt = "ssh -i pem_file.pem user@" + host_name + " 'cd /user/folder1/ && java -cp jar-file.jar'"
os.system(cmd_txt)
ret = subprocess.Popen([sys.executable,"python_file2.py"])
当我运行这个Main\u script.py时,来自
python\u file2.py
jar
文件的执行似乎被挂起。当我单独运行第一个脚本时,它工作正常,但当我尝试将其作为
子进程执行时,
jar
执行会挂起并超时


当从
子流程
脚本内部执行时,此
jar
执行被挂起的可能原因是什么?我只想从python脚本中运行远程机器上的jar文件,该脚本作为
子进程运行

使用
subprocess.call
而不是
subprocess.Popen

ret = subprocess.call([sys.executable,"python_file2.py"])
assert not ret, ret

subprocess.call
subprocess.Popen
中提供了哪些可能导致这种行为的差异?如果我是正确的
subprocess.call
反过来调用
subprocess.Popen
对吗?有谁能告诉我
subprocess.call
subprocess.Popen
可能导致问题解决的原因?