实际上我正在工作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();
}
}
如果有人知道,建议我。
感谢。
答案 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");