То В этом примере показано, как вызвать MATLAB®, сгенерировало метод в приложении Java®.
Создать приложение Java, которое вызывает MATLAB, сгенерировало метод:
Установите MATLAB Runtime и сгенерированные файлы JAR одним из следующих способов:
Запустите установщика, сгенерированного MATLAB. Это расположено в for_redistribution
папка проекта развертывания.
Выполнение так автоматически устанавливает MATLAB Runtime от сети и помещает сгенерированные файлы JAR на ваш компьютер.
Вручную установите MATLAB Runtime и сгенерированные файлы JAR на вашу систему разработки.
Можно загрузить инсталлятор MATLAB Runtime с https://www.mathworks.com/products/compiler/mcr. Сгенерированные файлы JAR расположены в проекте развертывания MATLAB for_testing
папка.
В папке, содержащей сгенерированные файлы 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 является экземпляром MWNumericArray
MATLAB класс, который MATLAB использует для своего внутреннего формата данных.
result является типовым объектом Java, который содержит результаты вызова MATLAB.
theMagic является классом экземпляра, сгенерированным от функции MATLAB.
Добавьте следующий код после переменной инициализации.
if (args.length == 0) { System.out.println("Error: must input a positive integer"); return; }
Это - простая проверка, чтобы гарантировать, что необходимый параметр командной строки был передан приложению.
Добавьте блок попытки/выгоды/наконец после проверки аргумента.
В try
раздел блока попытки/выгоды/наконец, добавляет следующий код.
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
разделите с блоком попытки/выгоды/наконец, чтобы обработать любые исключения, которые могут быть выданы.
catch (Exception e) { System.out.println("Exception: " + e.toString()); }
Добавьте следующий finally
разделите с блоком попытки/выгоды/наконец, чтобы очистить любые ресурсы.
finally { MWArray.disposeArray(n); MWArray.disposeArray(result); theMagic.dispose(); }
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 "mcrroot\toolbox\javabuilder\jar\javabuilder.jar"; .\makesqr.jar .\getmagic.java
Примечание
Введите javac
команда на одной строке.
На платформах UNIX® используйте двоеточие (:
) как разделитель пути к классу вместо точки с запятой (;
).
mcrroot
путь туда, где MATLAB Runtime установлен в вашей системе. Если вам установили MATLAB в вашей системе вместо этого, можно использовать путь к установке MATLAB.
От командной строки системы, запущенной приложение.
java -classpath .;"mcrroot\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 используйте двоеточие (:
) как разделитель пути к классу вместо точки с запятой (;
).
mcrroot
путь туда, где MATLAB Runtime установлен в вашей системе. Если вам установили MATLAB в вашей системе вместо этого, можно использовать путь к установке MATLAB.
Следовать этому примеру:
Попытайтесь установить новое приложение на различном компьютере.
Попытайтесь создать инсталлятор для приложения.
Попытайтесь интегрировать пакет, который состоит из нескольких функций.