我正在 batch mode 中执行 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 任务,因此我非常有信心所有的输入/输出/错误 streams are handled correctly (我还使用该代码来调用许多其他可执行文件)。
最佳答案
这是由 -noexit
引起的参数(在 Windows 上手动启动时很有用),因为它可以防止执行完成后关闭进程。
关于java - KNIME 批处理模式执行挂起/永不返回(从 Java 进程启动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40045913/