2012-02-21 8 views
0

Matlab環境から呼び出されたJavaコードを書いています。オブジェクトを返します.DATEオブジェクトです。このDateオブジェクトをさらに処理するために使用します。さらなる処理のために日付オブジェクトをキャッチ

import java.io.IOException; 
import org.apache.commons.net.TimeTCPClient;// third party class 
import java.util.Date; 
public final class TimeClient 
{ 

public static final Date timeTCP(String host) throws IOException 
{ 
TimeTCPClient client = new TimeTCPClient(); 
try 
{ 
// We want to timeout if a response takes longer than 4 seconds 
client.setDefaultTimeout(4000); 
client.connect(host); 
Date t=client.getDate(); 
System.out.println(t); 
return t; 
} 
finally 
{ 
client.disconnect(); 
} 
} 


public static final void main(String[]args) 
{ 
{ 
try 
{ 
timeTCP(args[0]); 
} 
catch (IOException e) 
{ 
e.printStackTrace(); 
System.exit(1); 
} 
} 
} 
} 

これはcode.IはM-ファイルとして保存された上記のjavaを呼び出して、私のMatlabのコードです

function t = gettime() 

    import java.io.IOException 
    import java.util.Date 
    import org.apache.commons.net.TimeTCPClient 
    import MATLAB.project.* 
    tc= TimeClient 
    tc.main('time-a.timefreq.bldrdoc.gov') 
end 

答えて

1

DNA mentionedというと、timeTCPを直接呼び出す必要があります。main関数をJavaで(Matlabに関する限り)捨てることができます。あなたの最後のMATLABラインは、そうでない場合は、あなたのMATLAB関数のみディスプレイ(による行の最後にセミコロンが欠落する)日が、あなたの変数tは、ランタイムエラーの原因となる、未設定のまま

t = tc.timeTCP('time-a.timefreq.bldrdoc.gov') 

にする必要があります誰かがあなたの関数を明示的に期待している場合はgettimevariablename = gettime;

+0

あなたは私を救助するために再び来ました。 – shree

2

私はMatlabのコードの権利を理解していれば、あなたはTimeClientmain()メソッドを呼び出しています。 Javaではmain()メソッドの戻り値タイプはvoidです。つまり、何も返さないため、Matlabコードは時刻値で取得できません。また

、あなたがDate返しtimeTCP()を呼び出すが、その後、あなたが戻り値と何もしないので、main()はそれを返すことができても、それが失われてしまうmain()から。

適切な値を返す非voidメソッドを呼び出す必要があります(おそらくその値をMatlabの変数に代入します)。

更新:あなただけmain()ではなく、直接timeTCP()を呼び出すことができますようtimeTCP()Dateを返さないのでが、見えます。

私はMATLABについてよく知らないので、gettime()から明示的に返す必要があるかどうか、またはそれが最後のステートメントによって暗示されているかどうかは不明です。

+0

@ DNAどこでコードを変更すればよいですか? – shree

+0

私の更新された回答を参照してください。 – DNA

+0

@ DNA mainはTCPClientクラスのメソッドなので、私はmatlabのコードの最後の行をexpaliningしています。クラスのオブジェクトを作成する必要があります。そのオブジェクトの助けを借りて、mainメソッドの引数をmainメソッドタイムサーバーのアドレス。 MATLABコードのt変数は、全く役に立たない、どんな値も格納しません。 – shree

関連する問題