Sudo java -jar против java -jar - PullRequest
0 голосов
/ 09 января 2020

У меня есть сервер, работающий на Java, использующий библиотеку Pi4j для управления GP IOs RaspberryPi и файл, в который я записываю текущие состояния GP IOs '. Когда я запускаю код из IntelliJ IDE, все работает просто отлично.
Но когда я создаю файл .jar и запускаю его как

sudo java -jar server.jar

Он прекрасно работает, обновляя файл, но GP IOs не меняют их статус.
Когда я делаю

java -jar server.jar

GP IOs правильно меняет свой статус, но я получаю ошибку java .io.FileNotFoundException: relStat .txt (В доступе отказано)


Все мои права доступа к файлу установлены на любой , поэтому любой должен иметь возможность читать, изменить и запустить его. Почему это происходит?

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Это проблема с правами доступа, владельцем файла является пользователь "pi". Под каким пользователем вы работаете?

0 голосов
/ 09 января 2020

ключевое слово 'sudo', по сути, запускает команду, которая следует за ним с правами администратора. Поэтому я предполагаю, что relStat.txt доступен или изменяем только для пользователя с правами администратора, и поэтому java имеет проблемы с его использованием при запуске оператора без 'sudo'

...