运行 android Runtime.getRuntime().exec
方法时出现问题。
我有一个要在 android 上运行的 native 二进制文件,我使用 java 方法 Runtime.getRuntime().exec
启动它。但运行这个 native 二进制文件需要添加环境变量。所以我执行这个命令:
envSetCmd = {"sh", "-c", "导出 LD_LIBRARY_PATH="+excBinFilepath+":$LD_LIBRARY_PATH"}。
当我使用以下命令检查环境变量时,它不起作用:
sh
、-c
、echo $LD_LIBRARY_PATH
。
我认为原因是,当我设置环境变量时,我启动了一个 shell,当我使用命令“echo”检查它时,另一个 shell 被启动。所以环境变量在 shell 中不起作用,我检查了一下。
我认为有两种方法可以解决这个问题。第一种是在一个 shell 中运行两个命令。所以我尝试使用命令:
{"sh", "-c", "export LD_LIBRARY_PATH="+excBinFilepath+":$LD_LIBRARY_PATH", "-c", "echo $LD_LIBRARY_PATH"}.
不幸的是,这是非法的。另一个是我将环境变量添加到android用户启动文件中。我尝试回显 $PATH
,我看到 /system/bin/
和其他路径在 android 启动时加载。
所以我想一定有一个类似于linux中的~/.bashrc
的文件可以设置用户的环境。
任何人都可以给我一些关于我上面列出的方法的线索吗?顺便说一句,我不应该root手机!
最佳答案
尝试使用 env 执行您需要执行的任何内容:
{"env", "LD_LIBRARY_PATH="+excBinFilepath, "yourCmd"}
关于java - 如何将环境变量添加到 android Runtime.getRuntime().exec 命令中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872944/