2011-09-06 60 views
1

我創建了一個基本上分析一堆pdf /文本文件並創建一個.mat文件的jar。我也有一個加載.mat文件的matlab腳本,並將數據與其他數據進行比較。我想確保jar運行並首先更新.mat文件。我想讓我的matlab腳本的第一行執行jar並等待它完成。我該怎麼做呢?java matlab如何在matlab腳本中運行jar?

回答

2

我通過使用系統('java -jar jarname.jar')運行它

+0

來運行它,爲什麼這是低調的?它解決了問題 – jhlu87

+0

中陳述的問題,因爲它不是真正從matlab運行java。 Matlab不知道它執行的是java,它只是簡單地進行系統調用。 IMO –

0

您的Java api調用必須被阻止。從Java解析任務中,請勿return,直到完成。

1

確保jar在你的Matlab類路徑中。假設你在jar中使用了一些靜態方法,所以從matlab中你的腳本可以調用com.mydomain.packagename.MainClass.main()。在調用完成之前,控件不會返回到Matlab,並且可能會創建.mat文件。所以你的下一個matlab線將是load('myfile.mat')。如果這不起作用,你能更具體嗎?

+0

我使用javaaddpath將其添加到動態路徑。我也通過文件 - >設置路徑添加它。當我試圖覆蓋jar文件時,它說我不能,因爲matlab已經打開了,所以matlab知道它。但是,我不知道如何讓它運行。只是要清楚這是一個可執行的jar(即我可以雙擊它,使其運行)我基本上只是想讓matlab做雙擊。我的包叫做statementreader,這個jar叫做StatementReader。我有一個主類與私有靜態無效主要作爲主類。無論我放什麼,我都會得到未定義的變量。 – jhlu87

+0

我期望'statementreader.main.main()'工作。你能更具體的關於未定義的變量嗎? –

+0

它表示「???未定義變量」statementreader「或class」statementreader.Main.main「。」這就好像我只是輸入了一些隨機變量,但是我使用系統命令 – jhlu87