Java 为什么不是';ProcessBuilder在提供绝对文件名时是否能够启动我的可执行文件?
我有一个Android应用程序正在尝试(但失败)使用Java 为什么不是';ProcessBuilder在提供绝对文件名时是否能够启动我的可执行文件?,java,android,processbuilder,Java,Android,Processbuilder,我有一个Android应用程序正在尝试(但失败)使用ProcessBuilder启动本机进程。以下是我所拥有的: String[] args = {"/data/data/com.me.myapp/files/myexec", "param1", "param2"}; Process process = new ProcessBuilder(args) .directory(new File("/data/data/com.me.myapp/files/somedir")) .s
ProcessBuilder
启动本机进程。以下是我所拥有的:
String[] args = {"/data/data/com.me.myapp/files/myexec", "param1", "param2"};
Process process = new ProcessBuilder(args)
.directory(new File("/data/data/com.me.myapp/files/somedir"))
.start();
process.waitFor();
(注意:出于本例的目的,我已经对路径进行了硬编码。真正的应用程序应该使用Context.getFilesDir()
)
这里有几点需要注意:
- 可执行文件是使用NDK为ARMv6交叉编译的
- 二进制文件确实设置了可执行位
- 我可以从
shell运行可执行文件adb
为什么我的应用程序不能执行可执行文件?哇-问了这个问题后,我只花了大约2分钟就发现我做错了什么 问题很简单,在运行
exec
之前,工作目录不存在