Кажется, что Java не понимает, где путь вашей среды (psql или shp2pgsql ..) равен
Вам необходимо указать путь, чтобы он мог выполняться.Обычно это в /usr/local/bin
или usr/bin
.Также обратите внимание, что аргумент для "/bin/sh
и "-c"
(это указывает, что команда, которую вы собираетесь выполнить, представлена в строковом формате), является отдельной.Просто измените следующий фрагмент.Это должно работать !!
String env = "/usr/local/bin/";
ProcessBuilder pb =
new ProcessBuilder("/bin/sh", "-c", env +"shp2pgsql /Users/abc.shp | "+env+"psql -U user1 -h localhost -p 5432 -d postgis");
Process p = pb.start();