2011-09-06 61 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