В этом примере показано, как вызвать метод MATLAB ®, созданный в приложении Java ®.
Чтобы создать Java-приложение, вызывающее метод, созданный MATLAB, выполните следующие действия.
Установите среду выполнения MATLAB и созданные JAR-файлы одним из следующих способов:
Запустите программу установки, созданную MATLAB. Он может быть расположен в for_redistribution папки проекта развертывания.
Это автоматически устанавливает MATLAB Runtime и помещает созданные JAR-файлы на компьютер.
Вручную установите MATLAB Runtime и созданные JAR-файлы в систему разработки.
Созданные JAR-файлы находятся в проекте развертывания MATLAB for_testing папка. Инструкции по загрузке и установке среды выполнения MATLAB см. в разделе Установка и настройка среды выполнения MATLAB.
В папке, содержащей созданные 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, и заполняет ее требуемым кодом 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();
}
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 в системе. Если в системе установлен 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 в системе. Если в системе установлен MATLAB, можно использовать путь к установке MATLAB.
Для продолжения этого примера:
Попробуйте установить новое приложение на другой компьютер.
Попробуйте создать программу установки для приложения.
Попробуйте интегрировать пакет, состоящий из нескольких функций.