|
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 12
|
|||||||||||||||||||||
Запуск java rmi системы18.04.2017, 01:23. Показов 5977. Ответов 2
Метки нет (Все метки)
Всем привет) Только разбираюсь с rmi и решила запустить простой пример с выводом "Hello World". Но у меня не получается. Опишу все подробно, может кто поможет. Сразу скажу, что сами классы я в пакет не помещала, так легче в консоли потом переходить в папки. Но знаю, что так делать плохо.
Интерфейс:
1. Нужно скомпилировать все классы 2. Запустить реестр Java RMI 3. Запустить Server 4. Запустить Client 1. Начинаем с компиляции. Мой проект лежит на диске D: и называется Hello. Запуская командную строку и перехожу в папку src моего проекта (cd /d d:Hello\src). Перешла, теперь нужно скомпилировать. На сайте oracle приведена следующая команда для этого: javac -d destDir Hello.java Server.java Client.java. Ввожу - ошибка: javac: directory not found: destDir Usage: javac <options> <source files> use -help for a list of possible options Поэтому я компилирую просто вот так: javac *.java. Итог - в папке src появляются файлы с расширением .class. Т.е. все сделано правильно. 2. Нужно запустите реестр Java RMI. В этой же консоли ввожу start rmiregistry. В итоге открывается консоль, в верху которой прописан следующий путь: C:\Program Files\Java\jdk1.8.0_121\bin\rmiregistry. exe. Я так понимаю, что здесь тоже все правильно. Если нет, то исправьте, пожалуйста. 3. Запуск сервера. В новой консоли перехожу в src и ввожу start java -classpath classDir -Djava.rmi.server.codebase=file:classDir/ Server (взято с сайта oracle). Открывается на несколько секунд другая консоль и закрывается. В той консоли, что я ввела команду для запуска сервера ничего не происходит, хотя должно писать Server ready. Пробую еще раз в этой же консоли ввести уже другую команду: просто java Server. Выдает ошибку: Error: Main method not found in class Server, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application Пробую здесь по-другому: start java -classpath classDir Server. Результат такой же, как и при вводе start java -classpath classDir -Djava.rmi.server.codebase=file:classDir/ Server: открывается на несколько секунд другая консоль и закрывается. 4. Запуск клиента. В новой консоли переходу в src проекта и ввожу java -classpath classDir Client. Выводит ошибку: Error: Could not find or load main class Client. Ввожу java Client и тоже ошибка: Error: Main method not found in class Client, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application Почему-то у меня не получается запустить сервер и клиент. Наверное, я делаю какие-нибудь очень глупые ошибки, но я только начала изучать) и хочу разобраться. Кстати, если я меняю код сервера (изменения выделено жирным):
Client exception: java.rmi.NotBoundException: Hello java.rmi.NotBoundException: Hello at sun.rmi.registry.RegistryImpl.lookup(Reg istryImpl.java:209) at sun.rmi.registry.RegistryImpl_Skel.dispa tch(Unknown Source) at sun.rmi.server.UnicastServerRef.oldDispa tch(UnicastServerRef.java:450) at sun.rmi.server.UnicastServerRef.dispatch (UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transp ort.java:200) at sun.rmi.transport.Transport$1.run(Transp ort.java:197) at java.security.AccessController.doPrivile ged(Native Method) at sun.rmi.transport.Transport.serviceCall( Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handl eMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$Conne ctionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$Conne ctionHandler.lambda$run$0(TCPTransport.j ava:683) at java.security.AccessController.doPrivile ged(Native Method) at sun.rmi.transport.tcp.TCPTransport$Conne ctionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor. runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at sun.rmi.transport.StreamRemoteCall.excep tionReceivedFromServer(StreamRemoteCall. java:276) at sun.rmi.transport.StreamRemoteCall.execu teCall(StreamRemoteCall.java:253) at sun.rmi.server.UnicastRef.invoke(Unicast Ref.java:379) at sun.rmi.registry.RegistryImpl_Stub.looku p(Unknown Source) at Client.main(Client.java:13) Естественно, я переходила в папку src каждый раз. Не понимаю, что не так. Может проблема в переменной среды, но я в этом плохо разбираюсь. Может у кого было что-то подобное вначале изучения и Вы мне сможете помочь. Буду очень признательна)
0
|
|||||||||||||||||||||
| 18.04.2017, 01:23 | |
|
Ответы с готовыми решениями:
2
Ошибка в RMI: nested exception is: java.lang.ClassNotFoundException: rmi.RemoteDateImpl_Stub Java RMI JAVA RMI калькулятор |
|
0 / 0 / 1
Регистрация: 18.04.2017
Сообщений: 2
|
||||||
| 18.04.2017, 15:11 | ||||||
В клиенте помимо хоста постарайтесь явно указывать порт, который прописали в Сервере. Переменная host в клиентском коде у вас какое значение принимает?
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 12
|
|
| 18.04.2017, 16:00 [ТС] | |
|
Я для клиента прописала Registry registry = LocateRegistry.getRegistry(1098);и все получилось! Спасибо большое!
0
|
|
| 18.04.2017, 16:00 | |
|
Помогаю со студенческими работами здесь
3
Как исправить ошибку java.rmi.ServerException Запуск java из консоли Запуск Java приложений Запуск java приложения Запуск java через прокси Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|