我有一个适用于 Linux 的代码,它在 unix shell 上执行 .sh 文件。
我想为 Windows 运行相同的代码。有人告诉我我应该为 windows 安装 cygwin。我这样做了,但现在如何将命令重定向到 cygwin shell?
这是我的代码的一部分:
public void compile() {
try {
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dir + "/" + file)));
out.write(contents);
out.close();
// create the compiler script
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dir + "\\compile.sh")));
out.write("cd \"" + dir +"\"\n");
out.write("gcc -lm " + file + " 2> err.txt");
Runtime r = Runtime.getRuntime();
Process p = r.exec( dir + "\\compile.sh");
p.waitFor();
p = r.exec(dir + "\\compile.sh"); // execute the compiler script
TimedShell shell = new TimedShell(this, p, timeout);
shell.start();
p.waitFor();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
如何重定向到 cygwin shell 并运行 shell 脚本?