Библиотека нативных процессов Java - PullRequest
0 голосов
/ 13 декабря 2011

Я пишу программу, которая контролирует Java-приложения.Я хотел бы отслеживать состояние собственных процессов и знать, когда они выходят.Это отлично;Java дает мне объект Process, и я могу подождать () для него.

Однако проблема, которая возникает, заключается в том, что если моя программа умрет, я бы хотел, чтобы она вернула ссылку на процесс - чего не может сделать в Java, потому что он никогда не создавал процесс.Моим первым предположением было отправить объект процесса через RMI и заставить клиентское приложение отправить его обратно, когда происходит переподключение, но это не сработает, потому что процесс не сериализуем.

Я могу придумать способсделать это изначально, используя JNA в Windows, но кто-нибудь знает, существует ли существующая библиотека, которая сделает это?

Cheers!

1 Ответ

2 голосов
/ 13 декабря 2011

Вы можете использовать WMI для реализации этого в Windows и утилит командной строки в Unix (если вам нужно). Я знаю следующие инструменты для работы с WMI: JaWin, WIntegra, JInterop.

Если ваш монитор работает в Windows, вы можете использовать JaWin. Это оболочка JNI поверх COM + API. Если вы хотите быть кроссплатформенным и иметь возможность контролировать Windows-машину с Unix-машины, используйте JInterop. Это библиотека с открытым исходным кодом, которая реализует протокол DCOM на чистом Java. JIntegra похожа, но коммерческая.

РЕДАКТИРОВАТЬ: возможно, даже более простое решение. Если вы хотите контролировать Java-приложение, просто используйте JMX. Подключитесь к этому приложению с помощью JMX удаленно или локально.

Удачи.

...