Итак, я сделал простое Java-RMI-приложение в Eclipse, используя плагин genady. Он отлично работает в этой среде, но было бы неплохо, если бы он мог работать и вне Eclipse.
В Eclipse, чтобы запустить его, я сначала запускаю реестр RMI. Затем я включаю создание заглушек для сервера. Затем я запускаю сервер как приложение RMI, а также позволяю Eclipse автоматически генерировать параметр codebase. Наконец, я запускаю клиент также как приложение RMI, добавляя политику безопасности параметров (просто позвольте eclipse создать ее для меня).
Так что все довольно просто.
Структура моего проекта следующая: у меня есть 3 отдельных проекта Java:
1) rmi common
2) rmi сервер
3) клиент RMI
И сервер, и клиент зависят от общего проекта (укажите его в пути сборки).
В общем проекте у меня есть описание удаленного интерфейса (в основном методы, которые клиент может вызвать с сервера), а также класс, который используется в качестве параметра для одного из методов интерфейса.
Сервер довольно прост на самом деле .. расширяет UnicastRemoteObject и реализует интерфейс. Просто получает реестр и связывает себя.
Клиент тоже не очень сложный. Устанавливает менеджер безопасности (новый менеджер безопасности RMI) и ищет сервер. Также у него есть класс пользовательского интерфейса, но это не так важно.
Поэтому мне интересно, как создавать исполняемые файлы JAR на клиенте и сервере. В идеале я хотел бы запустить реестр из командной строки, затем запустить сервер из CL и, наконец, таким же образом клиент.
По какой-то причине eclipse не позволит мне сгенерировать исполняемый файл jar для этих проектов, даже если у них обоих есть основной метод. Я попытался создать обычную банку, но она не работает, потому что она не находит основной класс.
Буду очень признателен, если кто-нибудь подскажет, как экспортировать этот проект из затмения, чтобы его можно было запустить из командной строки.