Как мне запустить NodeJS из приложения Java?

Я пишу библиотеку Java, собственно, библиотеку Clojure, но для этого вопроса важно, чтобы она работала на JVM. Эта библиотека должна выполнить некоторый JavaScript.Я пробовал с Nashorn но я сталкиваюсь с некоторыми ограничениями, которые могут быть слишком сложными для преодоления. В качестве альтернативы я хочу попробовать NodeJS.

Я хочу, чтобы моя библиотека была автономной, чтобы она не зависела от системы, на которой запущен NodeJS, и, таким образом, требовал, чтобы конкретный механизм развертывания размещал артефакты Java и NodeJS в нужных местах, которые будут обнаружены двумя различными сетевыми серверами. Этот подход, однако, приносит некоторые проблемы.

Я буду говорить с NodeJS через HTTP, но я не хочу, чтобы NodeJS открывал определенный порт. Я хочу найти случайный неиспользованный, чтобы не было столкновений. Я также хочу контролировать, куда логи от NodeJS, чтобы сохранить их с остальной частью моего приложения. Наконец, мое приложение должно быть в состоянии обнаружить сбой NodeJS и перезапустить его или сообщить об ошибке с информацией.

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

Ответы на вопрос(4)

Ваш ответ на вопрос