Я пытаюсь запустить скрипт оболочки для монтирования USB, когда я обнаруживаю его с помощью моей программы java.
Моя программа / класс обнаружения USB работает, скрипт монтирования тоже работает, но при запуске скрипта через Java, он выполняется в другой оболочке и не монтирует USB для моего использования во время выполнения usb-файлов через java.
Мой скрипт такой:
#!/bin/bash
sudo mount /dev/sda1 /mnt/usb -o uid=pi,gid=pi
echo "USB drive mounted"
И моя java программа настолько сложна, что просто помещает ее сюда, но она существенно меняется, если в "/ dev / disk / by-id" были какие-либо изменения, и решает, была ли вставлена флешка USB, а затем запускает сценарий оболочки для смонтировать его, он отображает «подключенный USB-накопитель», но когда я пытаюсь взаимодействовать с файлами в / mnt / usb /, он всегда пуст, когда я запускаю скрипт самостоятельно через консоль, он монтирует его в / mnt / usb и Я могу получить доступ к файлам
РЕДАКТИРОВАТЬ: Моя java команда для запуска оболочки выглядит так:
Process p = new ProcessBuilder("/usr/local/bin/usb-connect.sh").start();
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) System.out.println(line);
usbfh.transferFiles();//transfers files from usb to device
}catch(IOException e){ e.printStackTrace}
Это дает мне ошибку:
mount: /mnt/usb: special device /dev/sda1 does not exist.
Что неверно с тех пор, как тот же скрипт выполняется через Приглашение cmd монтируется без ошибок