如何禁用Windows平台上的JVM以运行背景matlab脚本

我在这里发现了一个类似的问题,并不能帮助我,所以我在问自己的问题。 我有一个matlab脚本,在nohup命令的linux下完美的工作。 不幸的是,我也需要在Windows上运行它。 但我不明白为什么我的命令仍然不起作用。 我的脚本做了一定的循环,但在第一次之后,它停止给我一个有关Java或其他东西的错误。 我必须告诉你,同样的问题发生在Linux下,如果我不把-nodisplay命令。

我的批处理行如下

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命令窗口仍然打开最小化..我宁愿有什么东西打开!

我必须添加另一件事.. nohup永远不会等待,直到它到达脚本的末尾,但使用任何其他批处理命令,如start如果有任何input请求或“等待”,直到有人给出input!

Solutions Collecting From Web of "如何禁用Windows平台上的JVM以运行背景matlab脚本"

未记录的-noawt选项将阻止GUI功能,但让Java运行。 结合-noFigureWindows ,就像你发现的那样,你应该有你所需要的。 另外,你可以通过你的M文件 set(0,'DefaultFigureVisible','off') 关闭图形显示 。

要查看Java是否实际加载,请运行verversion -java 。 这是我用-nojvm看到的。

没有Java的Windows MATLAB

然后,使用Windows的“ start /b /min MATLAB.exe ...应启动它最小化,而不需要打开一个命令窗口。

要使MATLAB 不可见,请尝试使用如下所示的小型NirCmd命令行工具,

 nircmd.exe exec hide win64\MATLAB.exe -noawt -noFigureWindows -nosplash -minimize ... 

我认为应该这样做, 要确保在bin\<architecture>文件夹中启动实际的MATLAB.exe ,而不仅仅是bin\matlab.exe因为当它启动实际的MATLAB.exe时,它不会被隐藏。