我注意到 JVM 没有获取我的一些环境变量。
In my .bash_profile
我定义了以下内容:
IO_HOME='some_value'
export IO_HOME
并通过在 shell 中执行以下操作:
echo $IO_HOME
我得到了正确的结果。
但两者都没有System.getProperties()
nor System.getenv()
显示正在设置此变量。我尝试了 Java 6 和 Java 7。
我有什么遗漏的吗?
将环境导出到生成的进程非常稳定;如果System.getenv()
不包含变量,那么这是因为它不在环境中。有几件事需要检查,都与流程的启动方式有关:
您是否从导出变量的环境中启动java进程?例如,如果它位于您的 .bash_profile 中,并且您正在从菜单或桌面执行 java 程序,那么您必须在将其添加到 .bash_profile 中后注销并登录才能看到该变量。
变量是否从进程的环境中显式删除?流程构建器 http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html允许这样做,就像大多数生成进程的 API 一样。
要尝试的一件事是在确保变量在该 shell 中导出后,从命令行 shell 启动该进程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)