Интеграция пакета Java с приложением

В этом примере показано, как вызвать MATLAB® сгенерированный метод на Java® применение.

Чтобы создать приложение Java, которое вызывает метод, сгенерированный MATLAB:

  1. Установите MATLAB Runtime и сгенерированные файлы JAR одним из следующих способов:

    • Запустите инсталлятор, сгенерированный MATLAB. Он может быть расположен в for_redistribution папка проекта развертывания.

      Это автоматически устанавливает MATLAB Runtime и помещает сгенерированные файлы JAR на компьютер.

    • Вручную установите MATLAB Runtime и сгенерированные файлы JAR в систему разработки.

      Сгенерированные файлы JAR находятся в for_testing проекта развертывания MATLAB папка. Инструкции по загрузке и установке MATLAB Runtime см. в разделе Установка и настройка MATLAB Runtime.

  2. В папке, содержащей сгенерированные файлы JAR, создайте новый файл с именем getmagic.java.

  3. Используя текстовый редактор, откройте getmagic.java.

  4. Поместите в файл следующую линию в качестве первой.

    import com.mathworks.toolbox.javabuilder.*;
    

    Этот оператор импортирует классы поддержки MATLAB.

  5. Поместите следующую линию после первого оператора импорта.

    import makesqr.*;
    

    Этот оператор импортирует классы, сгенерированные компилятором.

  6. Добавьте следующее определение класса.

    class getmagic
    {
    }

    Этот класс имеет один основной метод, который вызывает сгенерированный класс.

  7. Добавьте main() способ приложения.

    public static void main(String[] args)
    {
    } 
  8. Добавьте следующий код в верхнюю часть main() способ.

    MWNumericArray n = null;
    Object[] result = null;
    Class1 theMagic = null;
    

    Это инициализирует переменные, используемые приложением.

    • n является образцом MATLAB MWNumericArray класс, который MATLAB использует для внутреннего формата данных.

    • result является обобщенным объектом Java, который содержит результаты вызова MATLAB.

    • theMagic - класс образца, сгенерированный функцией MATLAB.

  9. Добавьте следующий код после инициализации переменной.

    if (args.length == 0)
    {
      System.out.println("Error: must input a positive integer");
      return;
    }
    

    Это простая проверка, чтобы убедиться, что необходимый аргумент командной строки был передан приложению.

  10. Добавьте try/catch/finally блок после проверки аргумента.

  11. В try раздел try/catch/finally заблокировать, добавить следующий код.

    n = new MWNumericArray(Double.valueOf(args[0]), MWClassID.DOUBLE);
    

    Код создает экземпляр образца MWNumericArray и заполняет его массивом 1 на 1, содержащим целое число, переданное приложению в командной строке. Значение преобразуется в Double потому что это самое прямое отображение между представлением внутренних данных Java и MATLAB.

  12. После кода, создающего экземпляр параметра входа, добавьте следующее, чтобы создать экземпляр класса, сгенерированного из MATLAB.

    theMagic = new Class1();
    

    Конструктор сгенерированного класса обрабатывает всю настройку, необходимую для запуска MATLAB Runtime и заполнения его необходимым кодом MATLAB.

  13. Используя вновь созданный объект, вызовите функцию MATLAB.

    result = theMagic.makesqr(1, n);
    System.out.println(result[0]);
    
  14. Добавьте следующую catch раздел в блок try/catch/finally для обработки любых исключений, которые могут быть выданы.

    catch (Exception e)
    {
      System.out.println("Exception: " + e.toString());
    }
    
  15. Добавьте следующую finally раздел в try/catch/finally блок, чтобы очистить любые ресурсы.

    finally
    {
      MWArray.disposeArray(n);
      MWArray.disposeArray(result);
      theMagic.dispose();
    }
    

    The disposeArray() и dispose() методы очищают ресурсы, используемые сгенерированным кодом MATLAB.

  16. Сохраните файл Java.

    Заполненный файл Java должен напоминать следующий.

    import com.mathworks.toolbox.javabuilder.*;
    import makesqr.*;
    
    class getmagic
    {
       public static void main(String[] args)
       {
          MWNumericArray n = null;
          Object[] result = null;
          Class1 theMagic = null;
    
          if (args.length == 0)
          {
            System.out.println("Error: must input a positive integer");
            return;
          }
    
          try
          {
             n = new MWNumericArray(Double.valueOf(args[0]),
                                          MWClassID.DOUBLE);
    
             theMagic = new Class1();
    
             result = theMagic.makesqr(1, n);
             System.out.println(result[0]);
          }
          catch (Exception e)
          {
             System.out.println("Exception: " + e.toString());
          }
          finally
          {
             MWArray.disposeArray(n);
             MWArray.disposeArray(result);
             theMagic.dispose();
          }
       }
    }
    
  17. Используйте командную строку системы, чтобы перейти в папку, в которой вы установили сгенерированный пакет Java и сохранили новый файл Java.

  18. Скомпилируйте приложение Java с помощью javac.

    javac -classpath "<MATLAB_RUNTIME_INSTALL_DIR>\toolbox\javabuilder\jar\javabuilder.jar";
           .\makesqr.jar .\getmagic.java

    Примечание

    Введите javac команда в одной линии.

    В UNIX® платформы, используйте двоеточие (:) как разделитель пути класса вместо точки с запятой (;).

    <MATLAB_RUNTIME_INSTALL_DIR> путь к месту установки MATLAB Runtime в вашей системе. Если в системе установлен MATLAB, можно использовать путь к установке MATLAB.

  19. В командной строке системы запустите приложение.

    java -classpath .;"<MATLAB_RUNTIME_INSTALL_DIR>\toolbox\javabuilder\jar\javabuilder.jar";
         .\makesqr.jar getmagic 5
        17    24     1     8    15
        23     5     7    14    16
         4     6    13    20    22
        10    12    19    21     3
        11    18    25     2     9

    Вы должны обязательно разместить точку (.) в первой позиции пути класса. Если это не так, вы получаете сообщение о том, что Java не может загрузить класс.

    Примечание

    Введите java команда в одной линии.

    На платформах UNIX используйте двоеточие (:) как разделитель пути класса вместо точки с запятой (;).

    <MATLAB_RUNTIME_INSTALL_DIR> путь к месту установки MATLAB Runtime в вашей системе. Если в системе установлен MATLAB, можно использовать путь к установке MATLAB.

Чтобы проследить за этим примером:

  • Попробуйте установить новое приложение на другом компьютере.

  • Попробуйте создать инсталлятор для этого приложения.

  • Попробуйте интегрировать пакет, который состоит из нескольких функций.