Вы используете неправильную exec()
функцию класса Runtime
.
Учитывая
String findCommand = "find /my/dir -path /my/dir/excludedFolder -prune -o -name .file.xyz -print";
Java-код
Runtime.getRuntime().exec(findCommand);
попытается запустить файл буквально с именем "find /my/dir -path /my/dir/excludedFolder -prune -o -name .file.xyz -print"
в качестве команды.
Вы хотите передать аргументы в find
, а не запускать длинную команду с именем файла, похожим на команду.Для этого вам нужно передать массив String
в exec()
:
String findCommand[] = { "find", "/my/dir", "-path",
"/my/dir/excludedFolder", "-prune", "-o", "-name", ".file.xyz", "-print" };
...
Runtime.getRuntime().exec(findCommand);