Ich habe eine ausführbare Datei (ffmpeg), die ich versuche, mit einem Java-Programm auf einem Mac auszuführen. Ich benutzen das Java-Programm den Befehl chmod 777 /path/to/ffmpeg
zu senden, aber wenn ich versuche, ffmpeg zu laufen, ich folgende Fehlermeldung erhalten:Berechtigung verweigert Fehler in Java für chmod Befehl
java.io.IOException: Cannot run program "/Users/james/WalkTheHall/ffmpeg": error=13, Permission denied
Aber wenn ich laufe chmod 777 /path/to/ffmpeg
vom Terminal auf meinem eigenen, bevor die Java-Anwendung zu öffnen, den Befehl zu ffmpeg wird in dem Java-Programm problemlos ausgeführt.
Gibt es einen Unterschied zwischen dem Aufruf von chmod
aus dem Java-Programm und dem Aufruf von mir selbst? Warum wird es nicht funktionieren? Vielen Dank!
vielleicht sind Sie mit der ausführbaren Java-Datei mit einem Benutzer, der die Privilegien, die Datei chmod nicht hat –
Details ... I don Ich weiß nicht auf Mac, aber auf GNU/Linux als gewöhnlicher Benutzer konnte man 'chmod 777' nicht machen (einige Berechtigungen sind" maskiert "), also ist es möglich, wenn man vom Terminal aus versucht, dass man tatsächlich die Art von Benutzer ist so etwas, während Sie das Java als Benutzer ausführen, der nicht kann? (Es ist auch möglich, dass der Java-vm Privilegien bei der Ausführung als "Power" -Benutzer löscht, nur um die Sicherheit zu erhöhen) – ShinTakezou