运行androidRuntime.getRuntime().exec
方法时出现问题。
我有一个本地二进制文件要在android上运行,我用java方法Runtime.getRuntime().exec
启动它。但是运行这个本机二进制文件需要添加一个环境变量。所以我执行这个命令:
envSetCmd = {"sh", "-c", "export 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
一样的文件可以设置用户的环境。
有人能给我一些关于我上面列出的方法的线索吗?顺便说一句,我不应该拔掉电话!
尝试使用env:执行任何需要执行的操作
{"env", "LD_LIBRARY_PATH="+excBinFilepath, "yourCmd"}