如何将环境变量添加到android Runtime.getRuntime()。exec命令?

时间:2015-04-26 02:18:04

标签: java android linux bash shell

运行android Runtime.getRuntime().exec方法时出现问题。

我有一个在android上运行的本机二进制文件,我用java方法Runtime.getRuntime().exec启动它。但是运行此本机二进制文件需要添加环境变量。所以我执行这个命令:

envSetCmd = {"sh", "-c", "export LD_LIBRARY_PATH="+excBinFilepath+":$LD_LIBRARY_PATH"}.

使用以下命令检查环境变量时,它不起作用: sh-cecho $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一样可以设置用户'环境。

任何人都能给我一些关于我上面列出的方法的线索吗?顺便说一句,我不应该打电话!

1 个答案:

答案 0 :(得分:0)

尝试使用env执行您需要执行的任何操作:

{"env", "LD_LIBRARY_PATH="+excBinFilepath, "yourCmd"}