我正在尝试编写一个 android 应用程序,该应用程序使用 rsync 和 ssh 将数据从 android 设备的选定目录备份到远程主机。当我从 adb shell 运行 rsync 命令时,它可以工作:
rsync -rvz -e "/system/xbin/ssh -y -p 22" "/mnt/sdcard/" "rajeesh@10.0.2.2:backup/"
但是我使用 Runtime.exec 的 java 代码失败并显示错误:
Error: rsync: failed to exec /system/xbin/ssh -y -p 22: No such file or directory (2)
我使用的代码如下:
String[] commands = {
"rsync", "-rvz", "-e", "\"/system/xbin/ssh -y -p 22\"",
"\"/mnt/sdcard/\"", "\"rajeesh@10.0.2.2:backup/\""
};
Process process = Runtime.getRuntime().exec(commands);
rsync 和 ssh 都已放置在 /system/xbin 并 chmod 为 755。尝试将“rsync”替换为“/system/xbin/rsync”,但问题仍然存在。这里会有什么问题?