Android在Java中设置(获取)环境variables

我已经尝试了一点与Android操作系统,我试图调用System.getenv()获取环境variables。 它适用于例如$PATH ,但我无法定义自己的variables,这可以通过这种方式访问​​…可能吗?

我试图设置和exportvariables从adb shell作为shell用户,但它不工作 – 无论是从手机菜单启动应用程序,或者当我使用adb shell am命令。

Runtime.getRuntime().exec()帮助吗? 如果我有root权限访问电话会有帮助吗?

谢谢

Solutions Collecting From Web of "Android在Java中设置(获取)环境variables"

环境variables只在设置variables的进程中可见,并且在设置variables之后启动subprocess。 当您从adb shell设置环境variables时,您不在启动Android应用程序的进程的父进程中,因此应用程序无法看到您设置的variables。

在Java(和Android)中没有System.setenv() ,但是如果你需要为自己的程序设置一个环境variables来读取,总是有更好的方法。 其中一种方法是设置和获取属性 。

在Java中设置环境variables是不可能的(当然,但是你不想这样做)。 如果你想设置另一个进程应该读取的variables,那么你可以使用ProcessBuilder ,但是如果这个进程是从Java / Android程序启动的话。

想想你想要解决什么问题,以及是否可以在不使用环境variables的情况下完成。 它们不适合Java,在Android上更糟糕。

可以在Android应用程序中设置环境variables。 不过,正如@richq所说的那样,这些variables将仅在从具有设置环境variables的应用程序(以及应用程序使用的JNI库)启动的进程中才可见。 关于从Android应用程序设置环境variables,请参阅这篇文章: https : //stackoverflow.com/a/22315463/927592