То В этом примере показано, как вызвать 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.
Следовать этому примеру:
Попытайтесь установить новое приложение на различном компьютере.
Попытайтесь создать инсталлятор для приложения.
Попытайтесь интегрировать пакет, который состоит из нескольких функций.