运行android Runtime.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
一样可以设置用户'环境。
任何人都能给我一些关于我上面列出的方法的线索吗?顺便说一句,我不应该打电话!
答案 0 :(得分:0)
尝试使用env执行您需要执行的任何操作:
{"env", "LD_LIBRARY_PATH="+excBinFilepath, "yourCmd"}