gpt4 book ai didi

java - 为什么在提供绝对文件名时 ProcessBuilder 无法启动我的可执行文件?

转载 作者:行者123 更新时间:2023-12-01 14:44:23 24 4
gpt4 key购买 nike

我有一个 Android 应用程序正在尝试(但失败)使用 ProcessBuilder 启动 native 进程。 。这是我所拥有的:

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 运行可执行文件外壳。

但是,当运行上面的代码时,出现异常:

Error running exec(). Command: [/data/data/com.me.myapp/files/myexec, param1,  param2] Working Directory: /data/data/com.me.myapp/files/somedir ...

为什么我的应用程序不能 exec可执行文件?

最佳答案

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

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

关于java - 为什么在提供绝对文件名时 ProcessBuilder 无法启动我的可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15596123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com