如何运行.exe文件?

时间:2013-07-24 06:29:35

标签: java java-ee-6

实际上我正在工作Wolfram Mathematica,我们没有任何运行外部程序的功能,所以我想使用Java技术来做这个App。

在我的组织中,C开发团队,开发了一个应用程序,并以.exe格式提供给我们。知道我想从.exe运行Java文件。

.exe目录下的ThMapInfratab1-2.exe名称为C:/Users/Infratab Bangalore/Desktop/Rod's

一旦我们运行.exe文件,我会自动将.txt文件作为TherInput.txt的输入名称从同一目录(C:/Users/Infratab Bangalore/Desktop/Rod's

对于我的构造,我使用命令提示符以下列方式手动运行ThMapInfratab1-2.exe文件。它运行良好。

 C:\Users\Infratab Bangalore\Desktop\Rod's>ThMapInfratab1-2.exe

最后.exe文件将t .txt个文件作为输出导出到同一目录(C:/Users/Infratab Bangalore/Desktop/Rod's)。

同样的事情,我想用Java做。你可以用我的目录来解释。

为此,我编写了以下代码,但它不起作用。

import java.io.IOException;
public class ProcessBuilderSample {

    public static void main(String args[]) throws IOException {
        Process process = new ProcessBuilder(
                "C:\\Users\\Infratab bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe")
                .start();
    }
}

如果有人知道,建议我。

感谢。

3 个答案:

答案 0 :(得分:0)

您需要执行Runtime的exec()方法,该方法返回Process实例或使用ProcessBuilder类方法。

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("C:\\Users\\Infratab Bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe");

您可以将ProcessBuilder用作

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
 Map<String, String> env = pb.environment();
 env.put("VAR1", "myValue");
 env.remove("OTHERVAR");
 env.put("VAR2", env.get("VAR1") + "suffix");
 pb.directory(new File("myDir"));
 File log = new File("log");
 pb.redirectErrorStream(true);
 pb.redirectOutput(Redirect.appendTo(log));
 Process p = pb.start();
 assert pb.redirectInput() == Redirect.PIPE;
 assert pb.redirectOutput().file() == log;
 assert p.getInputStream().read() == -1;

答案 1 :(得分:0)

你可以这样做:

Process process=Runtime.getRuntime().exec("C:\\Users\\Infratab Bangalore\\Desktop\\Rod's\\ThMapInfratab1-2.exe");

答案 2 :(得分:0)

Process process=Runtime.getRuntime().exec("C:\Users\Infratab Bangalore\Desktop\Rod's>ThMapInfratab1-2.exe");