Прежде чем запускать этот пример, обратите внимание на следующее:
Этот пример демонстрирует, как реализовать RMI, когда клиент и сервер работают на одной машине. Если необходимо сделать иначе, см. раздел Запуск клиента и сервера на отдельных компьютерах.
В UNIX®, использовать :
как диафрагма путей в вызовах к java
и javac
. Использование ;
как диафрагма путей в Windows.
Обновляйте путь к серверной системе только с указанием местоположения MATLAB® Среда выполнения. Клиенту не нужен доступ к MATLAB Runtime.
Этот пример поставляется в matlab\toolbox\javabuilder\Examples\RMIExamples\NativeCellStruct
директория.
Убедитесь, что:
В Windows® систем,
или matlabroot
/ runtime/ <arch>
находится в системном пути.<MATLAB_RUNTIME_INSTALL_DIR>
/ runtime/ <arch>
В системах UNIX, LD_LIBRARY_PATH
и DYLD_LIBRARY_PATH
установлены правильно. Дополнительные сведения об установке пути см. в разделе Установка пути MATLAB Runtime для развертывания во время выполнения.
Примечание
Обязательно вводите следующие команды в виде одинарных, несломленных команд.
Используйте следующую mcc
команда для создания пакета:
mcc -W 'java:dataTypesComp,dataTypesClass' createEmptyStruct.m updateField.m -v
Скомпилируйте Java сервера® код:
javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar; directory_containing_package\dataTypesComp.jar NativeCellStructServer.java
Скомпилируйте Java клиента кода:
javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar; directory_containing_package\dataTypesComp.jar NativeCellStructClient.java
Подготовьтесь к запуску сервера и клиентских приложений путем открытия двух командных окон - одного для клиента и одного для сервера.
Запуск сервера:
java -classpath .;directory_containing_package\dataTypesComp.jar; matlabroot\toolbox\javabuilder\jar\javabuilder.jar -Djava.rmi.server.codebase="file:///matlabroot/toolbox/javabuilder/ jar/javabuilder.jar file:/// directory_containing_package/dataTypesComp.jar" NativeCellStructServer
Запуск клиента:
java -classpath .;directory_containing_package\dataTypesComp.jar; matlabroot\toolbox\javabuilder\jar\javabuilder.jar NativeCellStructClient
Если ваше приложение успешно запущено, выход будет отображаться следующим образом:
Выходные данные сервера:
Please wait for the server registration notification. Server registered and running successfully!! EVENT 1: Initializing the structure on server and sending it to client: Initialized empty structure: Name: ' ' Address: [] ################################## EVENT 3: Partially initialized structure as received by server: Name: ' ' Address: [1x1 struct] Address field as initialized from the client: Street: '3, Apple Hill Drive' City: 'Natick' State: 'MA' Zip: '01760' ################################## EVENT 4: Updating 'Name' field before sending the structure back to the client Name: 'The MathWorks' Address: [1x1 struct] ##################################
Вывод клиента:
Running the client application!! EVENT 2: Initialized structure as received in client applications: 1x1 struct array with fields: Name Address Updating the 'Address' field to : 1x1 struct array with fields: Street City State Zip ################################# EVENT 5: Final structure as received by client: 1x1 struct array with fields: Name Address Address field: 1x1 struct array with fields: Street City State Zip #################################