2017-08-01 4 views
0

Je tente de capturer une sortie de processus python via apache-commons-exec. Mais il semble que la sortie ne sera pas imprimée, la sortie n'est affichée qu'une fois le processus python terminé.PumpStreamHandler peut capturer la sortie du processus en temps réel

Voici mon code java

CommandLine cmd = CommandLine.parse("/Users/jzhang/anaconda/bin/python"); 
cmd.addArgument("/Users/jzhang/a.py"); 
DefaultExecutor executor = new DefaultExecutor(); 
ExecuteWatchdog watchDog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT); 
executor.setWatchdog(watchDog); 

executor.execute(cmd); 

Et ceci est le code python que je veux exécuter (je ne reçois que la sortie après le processus de python est sorti, mais ce que je veux est d'obtenir la sortie en temps réel

for i in range(1,10): 
    print(i) 

import time 

time.sleep(10) 

Répondre

0

Je trouve la réponse, je devrais utiliser set flush à true. Par exemple.

print('hello world', flush=True)