Как запустить файл / проект Java в удаленной JVM, которая присутствует в другой сети? - PullRequest
1 голос
/ 10 ноября 2009

Я пытаюсь работать над проектом, который включает в себя запуск / выполнение файла Java в трех JVM в другой сети. Если я запускаю локально, файл Java должен одновременно работать во всех трех или двух JVM.

Например: /usr/local/helloWorld.java

class HelloWorld {

    public static void main(String args[]){
         System.out.println("Hello World");
     }

   }  

Когда я запускаю это /usr/local/$java helloWorld Это должно напечатать Hello World в JVM1 (локально), JVM2 (удаленно).

Есть ли способ сказать удаленной машине JVM2, что путь к файлу класса находится в /usr/local/ выполнить файл оттуда?.

или

Должен ли я запускать $java helloWorld на удаленном компьютере?

Спасибо

Ответы [ 4 ]

1 голос
/ 10 ноября 2009

С точки зрения чистого Java (по сравнению с ssh'ом на машине для создания экземпляров удаленной оболочки) вы можете рассмотреть RMI и шаблон Aglet , где объект может быть прозрачным для сети / jvm и выполняться на любой настроенной цели.

1 голос
/ 10 ноября 2009

Обычная Java не имеет готового механизма для вызова и синхронизации нескольких JVM на нескольких машинах.

Я бы посоветовал изучить сеточную платформу, поддерживающую Java или версию Terracotta с открытым исходным кодом, в зависимости от того, что вам нужно сделать.

http://www.terracotta.org/web/display/orgsite/Home

0 голосов
/ 10 ноября 2009

Вы можете взглянуть на JGroups . Затем вы можете реализовать свое приложение так, чтобы оно не начинало обрабатываться, пока не присоединилось достаточное количество «членов группы», и как только все члены группы присоединились, вы можете использовать JGroups, чтобы позволить им общаться ... Но вам все равно придется запускать JVM вручную или скриптом ...

0 голосов
/ 10 ноября 2009

Для запуска команд на нескольких JVM, я думаю, вам нужно будет реализовать какую-то логику клиент / сервер или P2P или многоадресную рассылку для отправки команд клиентам. Чтобы найти «определения удаленных классов», клиенты могут использовать URLClassLoader до загрузки классов и ресурсов из пути поиска URL-адресов, ссылающихся как на файлы JAR, так и на каталоги .

(РЕДАКТИРОВАТЬ: У меня нет опыта с этим, но, возможно, взглянуть на Джини . Хотя не уверен, что это будет соответствовать вашим потребностям.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...