Как установить путь к классам, который использует rmiregistry?

Я пытаюсь создать клиент-серверное приложение Java RMI . У меня проблемы с запуском серверной части моего приложения, так как оно продолжает работать с ClassNotFoundException во время вызова метода Registry.bind (), когда я пытаюсь запустить серверную часть приложение

Я начал с простого руководства здесь: http://docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-world.html . После выполнения этих инструкций он изначально генерировал исключение ClassNotFoundException с жалобой на то, что не смог найти «example.hello.Hello». Я смог решить эту проблему, запустив rmiregistry ИЗ каталога destDir в руководстве, поскольку rmiregistry, по-видимому, использует свой начальный начальный каталог как часть пути к классам.

После этого я запустил другое тестовое приложение, и все было в порядке пока я не начал использовать сторонние файлы jar в своем классе сервера. Теперь Registry.bind () выдает исключение ClassNotFoundException, если мой класс сервера ссылается на что-либо в любом файле jar, поскольку приложение rmiregistry не знает об этих файлах jar.

Насколько я могу судить, rmiregistry не принимает никаких аргументов запуска пути к классам, поэтому мне интересно, как я могу сказать ему, какой путь к классам я хочу, чтобы он подтвердил. Согласно руководству здесь: http://docs.oracle.com/javase/tutorial/rmi/running.html , "вы должны убедиться, что оболочка или окно, в котором вы будете запускать rmiregistry, либо имеет no переменную среды CLASSPATH, либо имеет переменную среды CLASSPATH, которая не включает путь к каким-либо классам, которые вы хотите загрузить клиентам ваших удаленных объектов. " Это звучит как противоположность тому, что мне нужно ... или я неправильно это читаю? Кому-нибудь удалось запустить клиент / сервер RMI, который использует сторонние jar-файлы (в моем случае commons-io, commons-logging и rmiio)?

Кстати, это в Windows.


Обновление Я нашел способ обойти это. Смотрите мой ответ ниже.

15
задан Adrian 2 December 2013 в 20:46
поделиться