Я пытаюсь запустить внешнюю программу в Java следующим образом:
Process p = Runtime.getRuntime().exec("./shufflet 1 2 <in.seq> out.seq");
BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line;
while ((line = bri.readLine()) != null) {
System.out.println(line);
}
bri.close();
while ((line = bre.readLine()) != null) {
System.out.println(line);
}
bre.close();
p.waitFor();
По сути, эта программа, которую я выполняю (Shufflet), читает все, что находится в in.seq, и затем что-то пишетна out.seq на основе этого.
Если я скопирую + вставлю эту строку (./shufflet 1 2 <in.seq> out.seq
) в командную строку, она будет работать нормально.
Если я выполню Java-программу, она выдаст Usage: shufflet [OPTIONS] NSEQ ORDER <INFILE >OUTFILE
это сообщение об ошибке, которое выдает Shufflet, если параметры неверны.
Я знаю, что параметры верны, потому что, опять же, он работает, если я скопирую + вставлю его в командную строку.
Есть идеи?