Сеанс MATLAB ® можно запустить из программы Java ® синхронно или асинхронно. Используйте этиMatlabEngine static методы запуска MATLAB:
MatlabEngine.startMatlab - Синхронный запуск сеанса MATLAB.
MatlabEngine.startMatlabAsync - Запуск сеанса MATLAB асинхронно.
Сеанс MATLAB всегда должен завершаться одним из методов в окне Закрыть сеанс MATLAB Engine (Close MATLAB Engine Session).
Синхронно запустите 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