Выполнение в пакетном режиме KNIME зависает / никогда не возвращается (запускается из процесса Java)

#java #knime

#java #knime

Вопрос:

Я выполняю рабочий процесс KNIME в пакетном режиме с Java.

Вывод, похоже, указывает на успех, но процесс никогда не возвращается (я должен использовать параметр тайм-аута, чтобы его отключить).

Вопрос: У кого-нибудь есть идея, почему процесс никогда не возвращается?

 Executing [C:Program FilesKNIMEKNIME.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 программно, поэтому я уверен, что все потоки ввода / вывода / ошибок обрабатываются правильно (также я использую этот код для вызова многих других исполняемых файлов).

Комментарии:

1. Может быть, без -noexit параметра?

2. Да, большое вам спасибо за то, что заметили это! Пожалуйста, преобразуйте в ответ.

Ответ №1:

Это вызвано -noexit параметром (он полезен в Windows при запуске вручную), поскольку он предотвращает закрытие процесса после завершения выполнения.

Ответ №2:

Windows требует -consoleLog -noexit , чтобы окно DOS оставалось открытым, чтобы видеть вывод на консоль. После того, как вы протестировали пакетный запуск Knime, вы можете удалить -consoleLog -noexit параметры, чтобы он не зависал в ожидании выхода пользователя из процесса.

Чтобы увидеть дополнительные параметры, вы можете запустить следующее в окне DOS. knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION