KNIME批处理模式执行挂起/永不返回(从Java进程启动)

时间:2016-10-14 14:41:11

标签: java knime

我正在使用Java在batch mode中执行KNIME工作流程。

输出似乎表示成功,但进程永远不会返回(我必须使用超时参数来终止它)。

问题:有没有人知道为什么这个过程永远不会回来?

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任务,因此我非常确信所有in / out / err streams are handled correctly(我也使用该代码来调用许多其他可执行文件)。

2 个答案:

答案 0 :(得分:2)

它由-noexit参数引起(在手动启动时在Windows上很有用),因为它可以防止在完成执行后关闭进程。

答案 1 :(得分:0)

Windows要求-consoleLog -noexit保持DOS窗口打开以查看控制台输出。测试Knime批处理运行后,您可以删除-consoleLog -noexit参数,以便在等待用户退出过程时它不会挂起。

要查看其他选项,可以在DOS窗口中运行以下命令。 knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION