Java 如何在CMD上运行MATLAB?

Java 如何在CMD上运行MATLAB?,java,matlab,cmd,Java,Matlab,Cmd,我试图直接在CMD上运行一个.m文件,而不是在MATLAB的终端上,但我开始相信在Windows上没有办法这样做。我找到了类似的东西,但仍然不是我需要的: matlab -nodisplay -nosplash -nodesktop -r "run whatever.m" 它只使用MATLAB自己的终端启动一个新屏幕,而不是像R、mySQL和其他程序那样在CMD上运行代码 实际上,我试图实现的是在Java上运行一些MATLAB代码。我知道有一种方法可以从.m文件中创建.jar、.dll

我试图直接在CMD上运行一个
.m
文件,而不是在MATLAB的终端上,但我开始相信在Windows上没有办法这样做。我找到了类似的东西,但仍然不是我需要的:

    matlab -nodisplay -nosplash -nodesktop -r "run whatever.m"
它只使用MATLAB自己的终端启动一个新屏幕,而不是像R、mySQL和其他程序那样在CMD上运行代码


实际上,我试图实现的是在Java上运行一些MATLAB代码。我知道有一种方法可以从
.m
文件中创建.jar、.dll、.exe,…,但我需要用其他方法。我的想法是得到MATLAB在CMD上抛出的结果,但它只是启动MATLAB,运行代码,而我使用
ProcessBuilder
在java上没有得到任何结果。这将读取控制台上显示的任何内容,但由于它是MATLAB的控制台,因此不可能得到任何结果。这就是为什么我需要一种直接在CMD上运行它的方法。

如果您只是想用Java运行一些Matlab代码,那么会有人问。可以找到
matlabcontrol
项目。关于本地Matlab控制也有一些内容。

因此,您的问题是如何让Matlab将M文件输出的结果返回到命令行,然后退出?您的请求导致了一种简化的进程到进程的通信,而无需使用琐碎/常见的O/S i/O重定向。有很多方法可以通过智能消息传递实现这一点,就像ZeroMQ所允许的那样。此外,还有一些类似Python MATLAB bridge的项目,它们受益于ZeroMQ,并添加了您搜索的内容。感谢您的回答,它与我需要的内容非常相似,我已经对其进行了测试并正常工作,但它在执行脚本之前启动Enter MATLAB,因此需要很长时间,最多10秒,我需要多次调用它,因此,这种方法不太可行,在R languaje上它非常简单,实际上它没有GUI,除非您安装一个IDE,所以我需要一种方法来执行.m文件,而不启动Entre Matlab并在Java上获得其结果。这似乎是不可能的,因为您需要Matlab运行时作为“pure.m”文件所需的运行时环境。这就是为什么您必须使用从java构建的MEX/jar,或者购买昂贵的Builder JA工具箱^ ^谢谢,我会检查一下,也许这是唯一的方法。:)