Matlab OpenFig Call из Java
-
26-10-2019 - |
Вопрос
Я использую веб -фигуры в Matlab, и у меня есть простая функция в Matlab
function df = getFig
f = openfig('C:\test1.fig');
figure('Visible','Off')
df = webfigure(f);
close(f);
end
Я называю эту функцию из моего сервлета Java. Однако это просто сидит некоторое время, тогда я получаю эту ошибку:
{_Error using figure
UIJ_AreThereWindowShowsPending - timeout waiting for window to show up
Error in openfig (line 135)
Error in getFig (line 3)
}_
Я попытался позвонить в ту же функцию, за исключением сгенерированной на фигуре Fly, например, с использованием сюжета или узла, и оба работают нормально.
Кроме того, как связанный вопрос, можно ли передать ссылку на файл на эту функцию от Java? Как через объект InputStream? Это связано с тем, что файлы, которые мне нужны для получения, фактически извлекаются из URL.
Любые идеи?
Решение
Я не уверен, в чем проблема, но одна проблема может быть в том, что команда figure('Visible','off')
не изменяет вашу цифру f
, но скорее создание новой отдельной фигуры, которая невидима.
Я также не уверен, почему вы хотите, чтобы фигура была невидимой (я думаю, что это может быть реальной проблемой того, почему она не появляется в сервлеле Java).
Если вам это нужно, чтобы быть невидимым, вы можете попробовать
openfig('filename.fig','new','invisible')
или, с тех пор openfig
действительно предназначен для графических интерфейсов, а не для фигур, содержащих только графику, использование hgload
Вместо этого, а затем установите видимость напрямую.