Перед выполнением этого примера обратите внимание на следующее:
В этом примере показано, как реализовать RMI, когда клиент и сервер работают на одном компьютере. См. раздел Запуск клиента и сервера на отдельных машинах, если вы хотите поступить иначе.
В UNIX ® используйте : в качестве разделителя пути при вызовах java и javac. Использовать ; в качестве разделителя пути в Windows.
Обновите только системный путь сервера, указав местоположение среды выполнения MATLAB ®. Клиенту не требуется доступ к среде выполнения MATLAB .
Этот пример поставляется в matlab\toolbox\javabuilder\Examples\RMIExamples\NativeCellStruct каталог.
Убедитесь, что:
В системах с ОС Windows ® или matlabroot/runtime/<arch> находится в системном тракте.<MATLAB_RUNTIME_INSTALL_DIR>/runtime/<arch>
В системах UNIX LD_LIBRARY_PATH и DYLD_LIBRARY_PATH правильно установлены. Дополнительные сведения об установке пути см. в разделе Установка пути времени выполнения MATLAB для развертывания во время выполнения.
Примечание
Обязательно введите следующие команды как одиночные, неразрывные.
Используйте следующее 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
#################################