3

ここで同様の質問が見つかりましたが、役に立たないので、自分で質問しています。Linuxでnohupコマンドを使用して完全に機能するmatlabスクリプトがあります。残念ながら、Windowsでも実行する必要があります。しかし、コマンドがまだ機能しない理由がわかりません。私のスクリプトは特定のループを実行しますが、最初のループの後、Java などに関するエラーが表示されなくなります。-nodisplayコマンドを入力しないと、Linux でも同じ問題が発生することをお伝えしなければなりません。

私のバッチラインは次のとおりです

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

私を助けてください。

編集:問題は、-nodisplayLinuxで使用するとJava環境が無効になっているためコマンドusejava('awt')が機能することですが、Windowsでは発生しません。なんで?

2番目の編集: 必要なものと非常によく似たものを見つけたと思います。

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

何も言わずに解析が実行されますが、MATLAB コマンド ウィンドウが最小化されたまま開きます。

別のことを追加する必要があります..nohupスクリプトの最後に到達するまで決して待機せずに進みますstartが、入力要求がある場合や「待機」などの他のバッチコマンドを使用すると、誰かが入力するまで停止します!

4

1 に答える 1

5

文書化されていない-noawtオプションを使用すると、GUI 機能が妨げられますが、Java は実行されます。あなたが発見したように、それを と組み合わせると-noFigureWindows、必要なものが得られるはずです。または、M ファイルを使用して Figure の表示をオフにすることもできますset(0,'DefaultFigureVisible','off')

Java が実際に読み込まれたかどうかを確認するには、verまたはを実行しversion -javaます。これが私が見たもの-nojvmです。

Java を使用しない Windows MATLAB

次に、Windows を使用start /b /min MATLAB.exe ... すると、コマンド ウィンドウを開いたままにせずに最小化して起動する必要があります。

MATLAB を非表示にするに、次のように小さなNirCmdコマンド ライン ツールを使用してみてください。

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

私はそれを行うべきだと思いますが、実際の MATLAB.exe を起動すると非表示にならないという理由だけでなく、必ずフォルダー内で実際MATLAB.exeに起動してください。bin\<architecture>bin\matlab.exe

于 2013-09-26T21:02:22.263 に答える