首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java System.getEnv()

Java System.getEnv()
EN

Stack Overflow用户
提问于 2012-08-07 09:40:00
回答 4查看 6.7K关注 0票数 2

在mac和Linux CentOS中,我插入了一个新的系统环境变量(即"MYAPP")使用.bashrc & .bash_profile。我甚至重启了我的笔记本电脑(mac)和服务器(linux)。

当我使用命令行"env“时,该环境变量显示为正确的值。但不知何故,每次我试图在mac或linux的Java应用程序(桌面应用程序、web应用程序、EJB或servlet以及任何其他java应用程序)中获取它时,都无法检索到环境变量("MYAPP")。

我尝试遍历Java可以检索的所有环境变量,结果发现它检索"MYAPP“以外的所有环境变量。这很奇怪。

有人知道怎么解决这个问题吗?

EN

回答 4

Stack Overflow用户

发布于 2012-08-07 10:05:15

export MYAPP=...了吗?导出变量使其可用于子进程,如由shell运行的java。

票数 1
EN

Stack Overflow用户

发布于 2012-08-08 00:39:45

在Linux中,如果您只在bash会话中设置(或导出)该变量,那么它将可用于某种"sub“会话,该会话仅可用于您刚刚执行的命令,而不适用于其他命令。

您可能会使用源(也称为“dot operator in bash”命令)。在该页面中:

使用在现有shell中运行的“`source”运行脚本时,脚本创建或修改的任何变量在脚本完成后仍将可用。

所以你可以试着做。导出VARIABLE=value,然后运行您的java程序。这类似于在Windows终端中设置一个变量,然后打开一个新终端并期望env var在那里。不会的。

这样,您就告诉bash“这个命令应该在这个特定的会话(会话的进程)中可用”。因此,当您运行OTherwise程序时,它将不存在。

票数 1
EN

Stack Overflow用户

发布于 2014-01-01 03:36:43

定义并导出环境变量之后。从相同的终端启动您的IDE。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11838219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档