Java 为什么不是';ProcessBuilder在提供绝对文件名时是否能够启动我的可执行文件?

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

我有一个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"))
    .start();
process.waitFor();
注意:出于本例的目的,我已经对路径进行了硬编码。真正的应用程序应该使用
Context.getFilesDir()

这里有几点需要注意:

  • 可执行文件是使用NDK为ARMv6交叉编译的
  • 二进制文件确实设置了可执行位
  • 我可以从
    adb
    shell运行可执行文件
但是,在运行上述代码时,我遇到了一个异常:

Error running exec(). Command: [/data/data/com.me.myapp/files/myexec, param1, param2] Working Directory: /data/data/com.me.myapp/files/somedir ... 运行exec()时出错。命令:[/data/data/com.me.myapp/files/myexec,param1, param2]工作目录:/data/data/com.me.myapp/files/somedir。。。
为什么我的应用程序不能执行可执行文件?

哇-问了这个问题后,我只花了大约2分钟就发现我做错了什么

问题很简单,在运行
exec
之前,工作目录不存在