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