2016-10-14 71 views
0

我在Java中執行batch mode中的KNIME工作流。KNIME批處理模式執行掛起/從不返回(從Java進程啓動)

輸出似乎表明成功,但進程永遠不會返回(我必須使用超時參數來殺死它)。

問題:有沒有人有一個想法,爲什麼這個過程永遠不會返回?

Executing [C:\Program Files\KNIME\KNIME.exe, -noexit, -nosplash, -nosave, -reset, -application, org.knime.product.KNIME_BATCH_APPLICATION, -workflowFile="C:\...\workflow.knwf", -workflow.variable=template.sdf,C:\...\template.sdf,String, --launcher.suppressErrors] [main] at AntBuildLogger.messageLogged() 
KNIME.exe stdout: CompilerOracle: exclude javax/swing/text/GlyphView.getBreakSpot       [Thread-2] at AntBuildLogger.messageLogged() 
KNIME.exe stdout: INFO main BatchExecutor ===== Executing workflow C:\...\workflow.knwf ===== [Thread-2] at AntBuildLogger.messageLogged() 
... 
KNIME.exe stdout: INFO main BatchExecutor Workflow execution done Finished in 3 secs (3937ms)    [Thread-2] at AntBuildLogger.messageLogged() 
KNIME.exe stdout: INFO main BatchExecutor ============= Workflow executed sucessfully ===============  [Thread-2] at AntBuildLogger.messageLogged() 

我使用的是Windows 10和KNIME 3.2.1。我正在使用Ant Exec任務編程,所以我非常有信心,所有的進出/ err streams are handled correctly(也是我使用該代碼來調用許多其他可執行文件)。

+1

也許沒有'-noexit'參數? –

+0

是的,非常感謝你的發現!請轉換爲答案。 – Zalumon

回答

1

這是由-noexit參數引起的(它在手動啓動時在Windows上很有用),因爲它可以防止在完成執行後關閉進程。