擅长:python、mysql、java
<p>您正在接收的输出是由python脚本创建/生成的,然后这个输出被传递到您的java程序,该程序最终打印输出。如果python脚本尚未完成执行,则无法接收其输出。因此,java程序等待python脚本完成执行,然后从python脚本检索输出并最终打印它。这就是为什么在关闭GUI时获得输出的原因。你知道吗</p>
<p>用一个简单的python脚本试试看。创建包含以下内容的python脚本:</p>
<pre><code>import time
print 'Hello'
time.sleep(2)
print 'TimeUp'
</code></pre>
<p>如果您使用python执行这个脚本,那么您可能会看到它首先打印<code>Hello</code>,然后在<code>2</code>秒之后打印<code>TimeUp</code>。但是当您使用java程序执行相同的脚本时。你将看到整个输出。因为java程序将等待python脚本完成。我希望你现在明白原因了。<em>使用线程并不能解决这个问题。你知道吗</p>
<p>本例中的执行顺序是:python脚本->;Java程序->;控制台输出</p>
<p><img src="https://i.stack.imgur.com/NzKNJ.jpg" alt="execution"/></p>
<p><a href="https://stackoverflow.com/questions/19102989/java-is-there-a-way-to-run-a-system-command-and-print-the-output-during-executi">Here</a>是一个有趣的问题,可能会帮助你进一步。你知道吗</p>