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