В этом примере показано, как вызвать MATLAB® сгенерированный метод на Java® применение.
Чтобы создать приложение Java, которое вызывает метод, сгенерированный MATLAB:
Установите MATLAB Runtime и сгенерированные файлы JAR одним из следующих способов:
Запустите инсталлятор, сгенерированный MATLAB. Он может быть расположен в for_redistribution
папка проекта развертывания.
Это автоматически устанавливает MATLAB Runtime и помещает сгенерированные файлы JAR на компьютер.
Вручную установите MATLAB Runtime и сгенерированные файлы JAR в систему разработки.
Сгенерированные файлы JAR находятся в for_testing
проекта развертывания MATLAB папка. Инструкции по загрузке и установке MATLAB Runtime см. в разделе Установка и настройка MATLAB Runtime.
В папке, содержащей сгенерированные файлы JAR, создайте новый файл с именем getmagic.java
.
Используя текстовый редактор, откройте getmagic.java
.
Поместите в файл следующую линию в качестве первой.
import com.mathworks.toolbox.javabuilder.*;
Этот оператор импортирует классы поддержки MATLAB.
Поместите следующую линию после первого оператора импорта.
import makesqr.*;
Этот оператор импортирует классы, сгенерированные компилятором.
Добавьте следующее определение класса.
class getmagic { }
Этот класс имеет один основной метод, который вызывает сгенерированный класс.
Добавьте main()
способ приложения.
public static void main(String[] args) { }
Добавьте следующий код в верхнюю часть main()
способ.
MWNumericArray n = null; Object[] result = null; Class1 theMagic = null;
Это инициализирует переменные, используемые приложением.
n является образцом MATLAB MWNumericArray
класс, который MATLAB использует для внутреннего формата данных.
result является обобщенным объектом Java, который содержит результаты вызова MATLAB.
theMagic - класс образца, сгенерированный функцией MATLAB.
Добавьте следующий код после инициализации переменной.
if (args.length == 0) { System.out.println("Error: must input a positive integer"); return; }
Это простая проверка, чтобы убедиться, что необходимый аргумент командной строки был передан приложению.
Добавьте try/catch/finally блок после проверки аргумента.
В try
раздел try/catch/finally заблокировать, добавить следующий код.
n = new MWNumericArray(Double.valueOf(args[0]), MWClassID.DOUBLE);
Код создает экземпляр образца MWNumericArray
и заполняет его массивом 1 на 1, содержащим целое число, переданное приложению в командной строке. Значение преобразуется в Double
потому что это самое прямое отображение между представлением внутренних данных Java и MATLAB.
После кода, создающего экземпляр параметра входа, добавьте следующее, чтобы создать экземпляр класса, сгенерированного из MATLAB.
theMagic = new Class1();
Конструктор сгенерированного класса обрабатывает всю настройку, необходимую для запуска MATLAB Runtime и заполнения его необходимым кодом MATLAB.
Используя вновь созданный объект, вызовите функцию MATLAB.
result = theMagic.makesqr(1, n); System.out.println(result[0]);
Добавьте следующую catch
раздел в блок try/catch/finally для обработки любых исключений, которые могут быть выданы.
catch (Exception e) { System.out.println("Exception: " + e.toString()); }
Добавьте следующую finally
раздел в try/catch/finally блок, чтобы очистить любые ресурсы.
finally { MWArray.disposeArray(n); MWArray.disposeArray(result); theMagic.dispose(); }
The disposeArray()
и dispose()
методы очищают ресурсы, используемые сгенерированным кодом MATLAB.
Сохраните файл 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(); } } }
Используйте командную строку системы, чтобы перейти в папку, в которой вы установили сгенерированный пакет Java и сохранили новый файл Java.
Скомпилируйте приложение 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.
В командной строке системы запустите приложение.
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.
Чтобы проследить за этим примером:
Попробуйте установить новое приложение на другом компьютере.
Попробуйте создать инсталлятор для этого приложения.
Попробуйте интегрировать пакет, который состоит из нескольких функций.