Runtimeクラスを使用してCygwinを実行します。これは非常に脆く、そしてセットアップに依存しているが、私のマシン上で、私はどうなる:
Runtime r = Runtime.getRuntime();
Process p = r.exec("C:\\dev\\cygwin\\bin\\mintty.exe --exec /cygpath/to/foo.sh");
は、完全な、そしてそれへのハンドルを取得するためにProcessのを待つことはstdoutに送信されたかを確認するためのInputStreamオブジェクトだとstderror。
コマンドの最初の部分はcygwinを実行し、もう1つは何らかのスクリプトまたはコマンド(-e
または--exec
を使用)を実行することです。 DOSプロンプトでこのコマンドをテストして、コードを削除する前に最初に動作するかどうかを確認します。また、利用可能なオプションを見てみましょう:
C:\dev\cygwin\bin\mintty.exe --help
また、DOSプロンプトから。
EDIT:それは--exec
と協力を得るように見えることはできません私のために、次の作品は、残念ながら、バージョン情報
public class RuntimeFun {
public static void main(String[] args) throws Exception {
Runtime r = Runtime.getRuntime();
Process p = r.exec("C:\\dev\\cygwin\\bin\\mintty.exe --version");
p.waitFor();
BufferedReader buf = new BufferedReader(
new InputStreamReader(
p.getInputStream()));
String line = buf.readLine();
while (line != null) {
System.out.println(line);
line = buf.readLine();
}
}
}
を印刷するので、あなたはそこにいくつかのより多くの研究を行う必要があるとしています。
出典
2012-03-23 15:40:39
Jon
cygwinにmintty.exeがありません。 – dhroove
あなたのバージョンに相当するものを見つけてください。私のデスクトップ上のCygwinのショートカットのプロパティを調べるのに1分かかりました。これが、私がこのアプローチが「脆い」と言った理由です。個々のマシン設定に大きく依存しています。 – Jon