[Позднее редактирование: проблема была в первоначальном описании; ОП передавал подстановочный знак, а не q.01. Так что мой ответ ниже неправильный, за исключением части в жирный шрифт . Я оставляю это так, комментарии после этого будут иметь смысл.]
Он пытается запустить /usr/bin/compress
в качестве имени программы без аргументов.
Существует много форм метода Runtime.exec (). Вы используете версию .exec (String) , которая просто берет исполняемый файл. Вместо этого вам нужно использовать версию массива .exec (String []) , которая принимает исполняемый файл в String [0] и параметры в String [1 ..].
.exec () требует массив String для передачи аргументов.
Попробуйте
String[] cmd = new String[] { "/usr/bin/compress", "q1.01" };
Runtime.getRuntime().exec(cmd);
Обратите внимание, что .exec не вызывает локальную командную оболочку. Это означает, что мы должны сделать, среди прочего, расширение по шаблону и даже синтаксический анализ некоторых аргументов перед вызовом .exec (). Вот почему вы не можете просто передать всю свою командную строку.