我正在尝试在 Java 类中创建一个可以在运行时执行 .exe 或 .linux 文件的函数。该程序是 espresso.exe(适用于 Windows 操作系统)和 espresso.linux(适用于基于 Linux 的系统)
通常,运行程序的方法是转到命令行,然后转到存储可执行文件的文件夹并键入:
(在命令提示符中)
浓缩咖啡 A0.txt > m.txt
或 espresso A0.txt(在 cmd 中返回输出)
(在 linux 终端中)
./espresso.linux A0.txt > m.txt
或 ./espresso.linux A0.txt (在终端窗口中返回输出)
这里 A0.txt 是输入参数,m.txt 是 espresso 创建的文件。
我已将 A0.txt 和 espresso.linux 和 espresso.exe 存储在文件夹 src/resources 下
我尝试了以下方法:
ProcessBuilder pb = new ProcessBuilder("./src/resources/espresso.exe","src/resources/A0.txt",">src/resources/m.txt");
try {
Process p = pb.start();
}catch (IOException ex) {
Logger.getLogger(NetSynth.class.getName()).log(Level.SEVERE, null, ex);
}
我也试过:
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("src/resources/espresso.linux src/resources/A0.txt > src/resources/m.txt");
int waitFor = p.waitFor();
他们都无法识别要执行的文件,并且不运行命令。我了解这两种方法可能存在很多错误。我可以使用一些帮助来找出运行可执行文件的方法和要编写的代码。
另外,是否有要提及运行 espresso.linux 的路径?/src/resources/espresso.linux 够用吗?
提前致谢。