Я не использовал Java RMI точно (я использовал только Java Web Start с Hessian двоичным протоколом для выполнения чего-то вроде RMI), но по крайней мере часть передачи адреса сервера в Интернет Запустить клиентское приложение должно быть легко. Когда вы генерируете файл JNLP в своем приложении, добавьте адрес в качестве свойства:
<jnlp>
[...]
<resources>
[...]
<property name="serverAddress" value="..." />
</resources>
</jnlp>
Затем в коде клиента прочитайте это свойство:
String serverAddress = System.getProperty("serverAddress");
Я предполагаю, что веб-сайт, который распространяет приложение, знает свой собственный адрес:)
Редактировать (с дополнительным ограничением незнания адреса во время сборки): Хм, сайт, распространяющий приложение, динамический или статический?
- динамический: либо динамически генерировать весь JNLP (со страницей JSP, либо с помощью dom4j или чего-либо еще), либо прочитать XML-файл JNLP «шаблона» и заменить реальный адрес сервера на месте
- static: я думаю, что человек, который развертывает сайт, должен вручную настроить правильный адрес в файле JNLP?