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