【发布时间】:2016-01-26 14:18:44
【问题描述】:
正如标题中指定的那样,我正在尝试通过 USB 将数据发送到我的 ODROID-Show 外部屏幕。我正在运行一个发送此类数据的 shell 脚本。问题是我可以简单地通过终端运行命令,它运行成功,数据通过 USB 端口发送到我的小屏幕。当我尝试通过 Java 运行相同的命令时,什么都没有发生。
Process proc = Runtime.getRuntime().exec("/bin/bash -c /home/ahmed/ODROID-SHOW-master/example/linux/images.sh /");
指定的命令应该具有 root 权限才能运行。那,我已经切换到root,然后运行代码,没有任何反应。有什么想法可以解决这样的问题吗?
编辑:
如果您可以显示执行以 sudo 为前缀的给定命令的代码,这绝对有效。
我能够以 root 身份运行该程序。但是,损坏的数据被发送到 ODROIDscreen 而不是有效的图像。虽然它在通过终端时成功传输,但有什么想法会发生这种情况吗?
【问题讨论】:
-
在终端中,您是否使用确切的语法 /bin/bash -c /home/ahmed/ODROID-SHOW-master/example/linux/images.sh / 运行它?
-
不,考虑到我目前在脚本目录中,我只能调用“sudo ./images.sh”。我也可以调用“sudo /home/ahmed/ODROID-SHOW-master/example/linux/images.sh”
-
您究竟是如何“切换到 root 并运行代码”的?我认为您应该能够使用与 Runtime.exec 场景相同的 cmd 行和用户从终端运行脚本。
-
你能做 sudo /bin/bash -c /home/ahmed/ODROID-SHOW-master/example/linux/images.sh / 吗?