3

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

我的批处理线如下

matlab -nodisplay -automation -r "run('myfile.m')" -logfile output.txt -minimize

请帮我。

编辑:我想我发现我的问题是当我-nodisplay在 linux 下使用命令时usejava('awt'),因为我的 java 环境被禁用,但是这不会在 windows 下发生!为什么?

第二次编辑: 我想我发现了一些与我需要的非常相似的东西。

matlab -noawt -noFigureWindows -r "run('myfile.m')" -logfile output.txt -minimize

分析运行,什么也没说,但 MATLAB 命令窗口仍然以最小化方式打开..嗯,我宁愿有任何东西可以打开!

我必须添加另一件事..nohup永远不要等待并继续前进,直到它到达脚本的末尾,但是使用任何其他批处理命令,例如start是否有任何输入请求或“等待”它会停止,直到有人提供输入!

4

1 回答 1

5

未记录的-noawt选项将阻止 GUI 功能,但让 Java 运行。正如您发现的那样,将其与 结合起来-noFigureWindows,您应该拥有所需的东西。或者,您可以通过 M 文件使用set(0,'DefaultFigureVisible','off').

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

没有 Java 的 Windows MATLAB

然后,使用 Windowsstart /b /min MATLAB.exe ... 应该以最小化的方式启动它并且不保持打开命令窗口。

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

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

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

于 2013-09-26T21:02:22.263 回答