如何在Windows平台上禁用JVM以运行后台matlab脚本

时间:2013-05-09 16:25:47

标签: windows matlab batch-file background jvm

我在这里发现了一个类似的问题,对我没有帮助,所以我问自己。 我有一个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;等待"它停止,直到有人给出一个输入!

1 个答案:

答案 0 :(得分:5)

未记录的-noawt选项将阻止GUI功能,但让Java运行。正如您所发现的那样,将其与-noFigureWindows相结合,您应该拥有所需的一切。或者,您可turn off figure display via your M file使用set(0,'DefaultFigureVisible','off')

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

Windows MATLAB with no Java

然后,使用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,它不会被隐藏。