Можно запустить сеанс MATLAB® с программы Java® синхронно или асинхронно. Используйте их MatlabEngine методы static, чтобы запустить MATLAB:
MATLABEngine. startMatlab — Запускает сеанс работы с MATLAB синхронно.
MATLABEngine. startMatlabAsync — Запускает сеанс работы с MATLAB асинхронно.
Необходимо всегда отключать сеанс работы с MATLAB с помощью одного из методов в, закрыли Сеанс MATLAB Engine.
Запустите MATLAB с Java синхронно.
import com.mathworks.engine.*;
public class StartMatlab {
public static void main(String[] args) throws Exception {
MatlabEngine eng = MatlabEngine.startMatlab();
...
eng.close();
}
}Запустите 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, используйте один из этих методов MatlabEngine:
| Метод | Цель |
|---|---|
Если процесс Java запускает сеанс работы с MATLAB как неразделяемый сеанс по умолчанию, Если сеанс работы с MATLAB является сеансом совместной работы, | |
Отключитесь от текущего сеанса работы с MATLAB синхронно или асинхронно. | |
Обеспечьте завершение работы текущего сеанса работы с MATLAB синхронно или асинхронно. |
com.mathworks.engine. MATLABEngine