2015-04-26 140 views
-2

當我運行android Runtime.getRuntime().exec方法時出現問題。如何將環境變量添加到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那樣可以設置用戶的環境。

任何人都可以給我一些關於我上面列出的方式的線索?順便說一句,我不應該根植電話!

+0

歡迎SO!由於您是新手,您可能需要查看此[鏈接](http://meta.stackexchange.com/a/5235/187716)。 – fferri

回答

0

嘗試執行任何你需要ENV執行:

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

感謝您的回答,但我未能嘗試。我知道這個命令在linux shell中運行良好。但我檢查了adb shell支持的命令,並且「env」不包含在其中。它顯示「/ system/bin/sh:env:not found」。你已經成功運行這個命令了嗎?你可以請我進一步的意見嗎? – leerh

相關問題