Mam plik wykonywalny (ffmpeg), który próbuję uruchomić z programem Java na komputerze Mac. Użyłem programu Java, aby wysłać polecenie chmod 777 /path/to/ffmpeg
, ale gdy próbuję uruchomić ffmpeg, pojawia się następujący błąd:Błąd odmowy uprawnień w Javie dla polecenia chmod
java.io.IOException: Cannot run program "/Users/james/WalkTheHall/ffmpeg": error=13, Permission denied
Ale kiedy biegnę chmod 777 /path/to/ffmpeg
od terminalu na własną rękę przed otwarciem aplikacja Java komendę ffmpeg będzie działał dobrze w programie Java.
Czy istnieje różnica między wywołaniem chmod
z poziomu programu Java i wywoływaniem go samodzielnie? Dlaczego to nie zadziała? Dziękuję Ci!
może używasz wykonywalny java z użytkownikiem, który nie ma uprawnień do tego pliku chmod –
szczegółów ... I don na komputerze Mac, ale na GNU/Linux jako zwykły użytkownik nie mogłeś zrobić 'chmod 777' (niektóre uprawnienia są" zamaskowane "), więc jest to możliwe, gdy próbujesz z terminalu, rzeczywiście jesteś typem użytkownika, który może zrobić coś takiego, podczas uruchamiania java jako użytkownik, który nie może? (Możliwe jest również, że java vm upuszcza przywileje, gdy działa jako użytkownik "zasilający", tylko po to, aby zwiększyć bezpieczeństwo). – ShinTakezou