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

标签 android environment-variables root

我对 Android 操作系统进行了一些试验,我尝试调用 System.getenv() 来获取环境变量。它有效,例如对于 $PATH,但我无法定义自己的变量,可以通过这种方式访问​​它...这可能吗?

我尝试以 shell 用户身份从 adb shell 设置和export 变量,但它不起作用 - 无论我是从手机菜单启动应用程序还是当我使用 adb shell am 命令时。

Runtime.getRuntime().exec() 有帮助吗?如果我拥有手机的 root 权限会有帮助吗?

谢谢

最佳答案

环境变量仅在设置变量的进程中可见,并且在设置变量后启动子进程。当您从 adb shell 设置环境变量时,您不在启动 Android 应用程序的进程的父进程中,因此应用程序看不到您设置的变量。

在 Java(和 Android)中没有 System.setenv(),但是如果您需要为自己的程序设置一个环境变量来读取,总有更好的方法。一种这样的方式是 setting and getting Properties相反。

在 Java 中设置环境变量是不可能的(好吧,它是,但你不想这样做)。您可以使用 ProcessBuilder如果您想设置另一个进程应读取的变量,但前提是该进程是从 Java/Android 程序启动的。

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

关于Android 在 Java 中设置(获取)环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597058/

相关文章:

android - PhoneGap + 安卓 : 2 'www' folder in source code: which to modify?

linux - 在获取 .bashrc 后,如何在使用 ssh 登录时在远程执行命令?

mysql - 为什么我无法为 MySQL 设置 root 用户?

heroku - 如何以root身份在Heroku上运行?

java - 存储过程使用 Sqlite : Android

android - 低于 64K 的方法出现“方法超出编译器指令限制”消息

android - Activity 丢失后终止异步任务

javascript - 如何在 node.js 应用程序 heroku 中访问 .env 文件中的变量

java - mac设置环境变量

php - 允许 PHP 更改文件和目录的所有权和权限