現在、私はProcessBuilderを使用してtest.outのようなファイルを実行しています。ここ は、私のコードの一部Java ProcessBuilderを使用してLinuxで./filenameを実行する方法
ArrayList cmd = new ArrayList();
cmd.add("sudo");
cmd.add("./test.out");
String s = "";
try{
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.directory(new File("/myPath"));
pb.redircErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferReader br = new BufferReader(isr);
String line = "";
while((line = br.readLine()) !=null)
{
s+=line;
}
System.out.println(s);
}
I出力正しいパス( "/ MYPATH")です。 私はライン
`cmd.add("sudo")`
を削除すると、出力は私の文字列与える:
oneoflib:must be root. Did you forgot sudo?
しかし、私は
cmd.add( "sudoを")を追加し、一度に。
出力がありません。
何か問題がありますか?
正常に動作する端末からsudo ./test.outを実行できます。 私はEclipse BTWを使用しています。 ありがとうございます。
:私のマシンで
出力は次のようになりますか?あなたは最終的な声明の中に何かを印刷するつもりはありませんか?言い換えれば:System.out.println(s); – mdewit
@mdewit sry、あなたは正しかった、私はコードを変更しました、ありがとうございます。私はちょうどターミナルの出力を取得したい。 – Kun