Следующий пример показывает, как запустить два отдельных процесса, чтобы инициализировать массивы структур MATLAB®.
Примечание
Вам не нужен MATLAB Runtime, установленный на клиентской стороне. Возвращаемые значения из MATLAB Runtime могут быть автоматически преобразованы с помощью marshalOutputs
Булевская переменная в RemoteProxy
класс. См. документацию API Javadoc для деталей в
.matlabroot
/help/toolbox/javabuilder/MWArrayAPI
Скомпилируйте пакет Java® путем выдачи следующей команды в командной строке MATLAB:
mcc -W 'java:dataTypesComp,dataTypesClass' createEmptyStruct.m updateField.m -v
Скомпилируйте код сервера Java путем издания следующего javac
команда в вашей системной командной строке. Гарантируйте, что между javabuilder.jar;
нет никаких пробелов и
directory_containing_package
.
javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar; directory_containing_package\dataTypesComp.jar DataTypesServer.java
Можно найти DataTypesServer.java
\in:
matlabroot\toolbox\javabuilder\Examples\RMIExamples \DataTypes\DataTypesDemoJavaApp
Скомпилируйте клиентский код Java путем издания следующего javac
команда в вашей системной командной строке. Гарантируйте, что между javabuilder.jar;
нет никаких пробелов и
directory_containing_package
.
javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar; directory_containing_package\dataTypesComp.jar DataTypesClient.java
Запустите клиент-сервер можно следующим образом:
Откройте два командных окна.
Если рабочий Windows®, обеспечьте тот
задан на системном пути. Если рабочий UNIX®, обеспечьте matlabroot
/runtime/arch
LD_LIBRARY_PATH
и DYLD_LIBRARY_PATH
установлены правильно.
Запустите сервер путем издания следующего java
команда в системной командной строке. Гарантируйте, что между dataTypesComp.jar;
нет никаких пробелов и
matlabroot
.
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" DataTypesServer
Запустите клиент путем издания следующего java
команда в системной командной строке. Гарантируйте, что между dataTypesComp.jar;
нет никаких пробелов и
matlabroot
.
java -classpath .;directory_containing_package\dataTypesComp.jar; matlabroot\toolbox\javabuilder\jar\javabuilder.jar DataTypesClient
Можно найти DataTypesClient.java
\in:
.matlabroot
\toolbox\javabuilder\Examples\RMIExamples\DataTypes\DataTypesDemoJavaApp
Если успешный, следующий выход появляется в Командном окне, запускающем сервер:
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: Name: [] Address: [] Updating the 'Address' field to : Street: '3, Apple Hill Drive' City: 'Natick' State: 'MA' Zip: '01760' ################################# EVENT 5: Final structure as received by client: Name: 'The MathWorks' Address: [1x1 struct] Address field: Street: '3, Apple Hill Drive' City: 'Natick' State: 'MA' Zip: '01760' #################################