【问题标题】:Running Matlab from Java code [duplicate]从Java代码运行Matlab [重复]
【发布时间】:2013-05-09 12:53:17
【问题描述】:

对不起,如果我问了一个简单的问题,但我想问一下在执行 java 源代码时是否有可能在其中包含使独立的 Matlab 程序运行的代码(不仅仅是在 java 中执行 Matlab 代码)?我认为这也是一个普遍的问题,您是否可以在Java中执行代码的过程中启动其他程序。

谢谢。

最好的,

M

【问题讨论】:

  • 您想从 Java 运行 m 文件还是 MATLAB 可执行文件?
  • 请看this SO question

标签: java matlab execute


【解决方案1】:

我知道你可以像这样运行外部程序:

import java.io.*;
public class CommandExection {
public CommandExection(String commandline) {
try {
    String line;
    Process p = Runtime.getRuntime().exec(commandline);
    BufferedReader input =
    new BufferedReader
    (new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }
    input.close();
} catch (Exception err) {
    err.printStackTrace();
}
}

public static void main(String argv[]) {
    new CommandExection("c:\\Yourprogram.exe");
}

【讨论】:

  • Runtime.getRuntime().exec(commandline); 的所有代码? :)
  • 这是一个可执行示例,如果您知道如何将其放入代码中,则无需编写整个代码。 :-)
  • 显然。我的观点是,除了 getRuntime().exec 之外的一切都是无关紧要的。我同意将外部程序的输出重定向到标准输出可能很有用,但这不是这里所要求的。相反,它可能会造成不必要的混乱。
  • @EitanT:我不同意。如果你不吞下输入和错误流,你的外部进程可能会阻塞它的缓冲区并死掉。我认为这个例子实际上需要更多,包括吞噬错误流和使用 ProcessBuilder 来获取 Process。如果你不告诉新手这样做,他们就不会。
  • @HovercraftFullOfEels 支持澄清我的观点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多