Запуск и закрытие сеанса работы с MATLAB из Java

Можно запустить MATLAB® сеанс из вашего Java® программируйте синхронно или асинхронно. Используйте их MatlabEngine static методы, чтобы запустить MATLAB:

  • MatlabEngine.startMatlab — Запустите сеанс работы с MATLAB синхронно.

  • MatlabEngine.startMatlabAsync — Запустите сеанс работы с MATLAB асинхронно.

Необходимо всегда отключать, сеанс работы с MATLAB с помощью одного из методов в закрыли Сеанс MATLAB Engine.

Запуск MATLAB синхронно

Запустите MATLAB с Java синхронно.

import  com.mathworks.engine.*;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        MatlabEngine eng = MatlabEngine.startMatlab();
        ...
        eng.close();
    }
}

Запуск MATLAB асинхронно

Запустите MATLAB с Java асинхронно. Используйте get метод возвращенного Future возразите, чтобы ожидать возврата MatlabEngine объект.

import  com.mathworks.engine.*;
import java.util.concurrent.Future;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        Future<MatlabEngine> engFuture = MatlabEngine.startMatlabAsync();
        //Do work while MATLAB engine starts
        ...
        MatlabEngine eng = engFuture.get();
        ...
        eng.close();
    }
}

Запущение двигателя с опциями запуска

Можно задать опции запуска MATLAB, когда вы запускаете сеанс работы с MATLAB. Для получения информации об опциях запуска MATLAB смотрите Обычно Используемые опции запуска.

MatlabEngine.startMatlab и MatlabEngine.startMatlabAsync методы принимают массив строк как вход.

Запустите двигатель синхронно с опциями запуска MATLAB.

import  com.mathworks.engine.*;

public class StartMatlab {
    String[] options = {"-noFigureWindows", "-r", "cd H:"};
    public static void main(String[] args) throws Exception {
        MatlabEngine eng = MatlabEngine.startMatlab(options);
        ...
        eng.close();
    }
}

Запустите двигатель асинхронно с опциями запуска MATLAB.

import  com.mathworks.engine.*;
import java.util.concurrent.Future;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        String[] options = {"-noFigureWindows", "-r", "cd H:"};
        Future<MatlabEngine> engFuture = MatlabEngine.startMatlabAsync(options);
        ...
        MatlabEngine eng = engFuture.get();
        ...
        eng.close();
    }
}

Закрывание сеанса MATLAB Engine

Чтобы закончить сеанс движка MATLAB, используйте один из них MatlabEngine методы:

МетодЦель

близко

Если процесс Java запускает сеанс работы с MATLAB как неразделяемый сеанс по умолчанию, close() отключает MATLAB.

Если сеанс работы с MATLAB является сеансом совместной работы, close() разъединения MATLAB от этого процесса Java. MATLAB завершает работу, когда нет никаких других связей.

разъединитесь, disconnectAsync

Отключитесь от текущего сеанса работы с MATLAB синхронно или асинхронно.

выйдите, quitAsync

Обеспечьте завершение работы текущего сеанса работы с MATLAB синхронно или асинхронно.

Смотрите также

Похожие темы