Используйте ячейку Native Java и массивы структур

Прежде чем вы запустите пример

Прежде чем вы запустите этот пример, отметьте следующее:

  • Этот пример демонстрирует, как реализовать RMI, когда клиент и сервер работают на той же машине. Смотрите Клиент-сервер Выполнения на Отдельных Машинах, если требуется сделать в противном случае.

  • На UNIX® используйте : в качестве разделителя пути в вызовах java и javac. Используйте ; в качестве разделителя пути на Windows.

  • Только обновите системный путь к серверу с местоположением MATLAB® Runtime. Клиенту не нужен доступ к MATLAB Runtime.

  • Этот пример поставляется в директории matlab\toolbox\javabuilder\Examples\RMIExamples\NativeCellStruct.

  • Гарантируйте что:

Выполнение примера

Примечание

Обязательно введите следующее как одну, неповрежденные команды.

  1. Используйте следующую команду mcc, чтобы создать пакет:

     mcc -W 'java:dataTypesComp,dataTypesClass' createEmptyStruct.m 
                                                updateField.m -v

  2. Скомпилируйте код Java® сервера:

    javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar;
    directory_containing_package\dataTypesComp.jar NativeCellStructServer.java 

  3. Скомпилируйте код клиента Java:

    javac -classpath matlabroot\toolbox\javabuilder\jar\javabuilder.jar;
    directory_containing_package\dataTypesComp.jar 
    NativeCellStructClient.java 
    
  4. Подготовьтесь запускать сервер и клиентские приложения путем открытия двух командных окон — один для клиента и один для сервера.

  5. Запустите сервер:

    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
  6. Запустите клиент:

    java -classpath .;directory_containing_package\dataTypesComp.jar;
    matlabroot\toolbox\javabuilder\jar\javabuilder.jar NativeCellStructClient
  7. Если ваше приложение запустилось успешно, вывод отобразится можно следующим образом:

    • 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
      
                  #################################