2012-01-16 17 views
1

をコマンドへのJavaを使用した:その第二にコマンドを書く私が使用MATLABを使用しようとしているMatlabの

をMatlabのの2番目のインスタンスを起動するために、新しいJavaプロセスを作成し、

    1. Matlabの最初のインスタンスからのMatlabのインスタンス

    コードは正常に動作しているようですが、2番目のMatlabインスタンスのコマンドウィンドウに何も表示されません。私は間違って何をしていますか?

    私が試したコードは次のとおりです。

    % Start a 2nd instance of Matlab 
    MatlabProcess = java.lang.Runtime.getRuntime().exec('matlab -nosplash'); 
    pause(20); % I don't know if this pause is really needed. 
    
    % Set up a buffered Java stream writer to write to the new Matlab Process 
    OutputStream   = MatlabProcess.getOutputStream(); 
    OutputStreamWriter  = java.io.OutputStreamWriter(OutputStream); 
    OutputBufferedWriter = java.io.BufferedWriter(OutputStreamWriter); 
    
    % Write some text to the 2nd Matlab Instance 
    OutputBufferedWriter.write('pi\n'); 
    OutputBufferedWriter.flush(); 
    
  • 答えて

    1

    私はMathWorks社のMATLABプロセスが対話型であるかどうかに応じて、両方とも、あなたはコマンドウィンドウ、または標準入力/標準出力の使用のいずれかを取得しないと信じています。

    +0

    秒のMatlabインスタンスを開始するとき: MatlabProcess = java.lang.Runtime.getRuntime()。exec( 'matlab -nosplash -nodesktop'); コマンドウィンドウが起動せず、getInputStream()を介してMatlabの生成されたインスタンスから出力を読み取ることができます。 私はまだ上記のコードで出力ストリームに書き込むことはできません。コードはOKを実行するようですが、Matlabの2番目のインスタンスには何も書き込まれていないようです。 – Greg

    +0

    @Greg:出力ストリームには書き込みを行わず、入力ストリーム(子プロセスのstdinを意味します)に書き込みます。 Javaのドキュメントはすべて壊れています。 –

    +0

    お返事ありがとうございます。私はかなりJavaに慣れていないし、InputStreamに書き込むという考え方に混乱している。 私が理解する限り、JavaのInputStreamにはwrite()メソッドがありません。しかし、Java OutputStreamは次のようになります。 http://docs.oracle.com/javase/1.4.2/docs/api/java/io/OutputStream.html 私は何かを見逃しているに違いないが、それが何であるかを理解するのが難しい。 – Greg

    関連する問題