我在这里发现了一个类似的问题,对我没有帮助,所以我问自己。
我有一个matlab脚本,在linux下使用nohup命令完美地工作。
不幸的是,我还需要在Windows上运行它。但我无法理解为什么我的命令仍然无效。
我的脚本做了一个循环,但在第一次它停止给我一个关于java或其他东西的错误。我必须告诉你,如果我不放-nodisplay
命令,linux下会出现同样的问题。
我的批次行如下
matlab -nodisplay -automation -r "run('myfile.m')" -logfile output.txt -minimize
请帮帮我。
编辑:
我想我发现我的问题是问题是当我在linux下使用-nodisplay
命令usejava('awt')
时,因为我的java环境被禁用了,但是这不会发生在windows下!为什么呢?
第二次修改 我想我找到的东西与我需要的东西非常相似。
matlab -noawt -noFigureWindows -r "run('myfile.m')" -logfile output.txt -minimize
分析运行,一言不发,但MATLAB命令窗口仍然打开最小化... .hhm 我宁愿打开任何东西!
我必须添加另一个东西.. nohup
永远不会等待并继续前进,直到它到达脚本的末尾,然而使用任何其他批处理命令,如start
,如果有任何输入请求或& #34;等待"它停止,直到有人给出一个输入!
答案 0 :(得分:5)
未记录的-noawt
选项将阻止GUI功能,但让Java运行。正如您所发现的那样,将其与-noFigureWindows
相结合,您应该拥有所需的一切。或者,您可turn off figure display via your M file使用set(0,'DefaultFigureVisible','off')
。
要查看Java是否实际加载,请运行ver
或version -java
。这是我在-nojvm
看到的内容。
然后,使用Windows start /b /min MATLAB.exe ...
应该最小化并且不打开命令窗口。
要使MATLAB 不可见,请尝试使用微小的NirCmd命令行工具,如下所示,
nircmd.exe exec hide win64\MATLAB.exe -noawt -noFigureWindows -nosplash -minimize ...
我认为应该这样做,但确保您启动MATLAB.exe
文件夹中的实际bin\<architecture>
,而不只是bin\matlab.exe
,因为它启动时实际的MATLAB.exe,它不会被隐藏。