Прежде чем запускать этот пример, обратите внимание на следующее:
Этот пример демонстрирует, как реализовать 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
#################################