【发布时间】:2015-03-27 14:39:25
【问题描述】:
我已将 matlab .m 文件部署到 Windows 控制台应用程序中。我部署的 matlab 文件实际上是一个 matlab 函数,它没有参数并返回一个整数列表。我正在使用进程从 java 代码运行该 .exe 来运行我的可执行文件。我尝试使用以下代码读取返回值:
Process process = Runtime.getRuntime().exec("epidemic.exe");
//process.waitFor();
System.out.println("....");
InputStream in = process.getInputStream(); // To read process standard output
InputStream err = process.getErrorStream(); // To read process error output
while (process.isAlive()) {
while (in.available() > 0 || err.available() > 0) {
if (in.available() > 0) {
System.out.print((char)in.read()); // You might wanna echo it to your console to see progress
}
if (err.available() > 0) {
err.read(); // You might wanna echo it to your console to see progress
}
}
Thread.sleep(1);
}
System.out.println("....");
编辑:根据建议的更改,我重新更改了我的代码。同样,它似乎没有打印返回的值。如果这段代码没问题,我如何检查可执行文件是否确实返回值?
【问题讨论】:
-
我已经编辑了帖子。
-
您是使用 javaw 还是 java 可执行文件来运行它? javaw 将隐藏控制台窗口。
-
epidemic.exe真的返回了什么吗?你要关闭Reader吗?有没有Exceptions 被抛出? -
@ESP 如何检查我正在使用什么来运行 exe? Mera 不,我没有例外,似乎 while 循环不起作用。 Epidemic.exe 是从 matlab 部署的,使用 compile application 是一个返回整数向量的函数。
-
你是如何运行你的 Java 代码的?
标签: java executable