Прежде чем вы запустите этот пример, отметьте следующее:
Этот пример демонстрирует, как реализовать RMI, когда клиент и сервер работают на той же машине. Смотрите Клиент-сервер Выполнения на Отдельных Машинах, если требуется сделать в противном случае.
На UNIX® используйте : в качестве разделителя пути в вызовах java и javac. Используйте ; в качестве разделителя пути на Windows.
Только обновите системный путь к серверу с местоположением MATLAB® Runtime. Клиенту не нужен доступ к MATLAB Runtime.
Этот пример поставляется в директории matlab\toolbox\javabuilder\Examples\RMIExamples\NativeCellStruct.
Гарантируйте что:
В системах Windows® находится на системном пути.matlabroot/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
Если ваше приложение запустилось успешно, вывод отобразится можно следующим образом:
Server вывод:
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]
##################################
Client вывод:
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
#################################