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

标签 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命令窗口仍然最小化打开..uhm 我宁愿打开任何东西!

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

最佳答案

未记录的 -noawt选项将阻止 GUI 功能,但让 Java 运行。结合 -noFigureWindows ,正如您发现的那样,您应该拥有所需的东西。或者,您可以 turn off figure display via your M fileset(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.exebin\<architecture>文件夹,而不仅仅是 bin\matlab.exe因为当它启动实际的 MATLAB.exe 时,它​​不会被隐藏。

关于windows - 如何在 Windows 平台上禁用 JVM 以运行后台 matlab 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16466535/

相关文章:

matlab - 如何从单元阵列中随机抽取样本?

matlab - 如何在matlab中合并两个不同维度的矩阵

batch-file - 使用变量调用变量

batch-file - 如何使用 ffmpeg 降低多个 JPEG 图像文件的质量?

windows-7 - 从桌面或程序中调用时,相同的 BAT 文件表现不同

java - java 的 strace 或 procmon 等效项

c++ - Windows 上的 CMake - 使用导入的目标 OpenGL::GLU 时 FindOpenGL.cmake 中的错误?

matlab - 如何在 MATLAB 中绘制没有黑边的曲面图?

windows - 为什么我无法从命令提示符运行此 exe 文件?

ruby-on-rails - Windows 上的 Ruby on Rails 开发