在mac和Linux CentOS中,我插入了一个新的系统环境变量(即"MYAPP")使用.bashrc & .bash_profile。我甚至重启了我的笔记本电脑(mac)和服务器(linux)。
当我使用命令行"env“时,该环境变量显示为正确的值。但不知何故,每次我试图在mac或linux的Java应用程序(桌面应用程序、web应用程序、EJB或servlet以及任何其他java应用程序)中获取它时,都无法检索到环境变量("MYAPP")。
我尝试遍历Java可以检索的所有环境变量,结果发现它检索"MYAPP“以外的所有环境变量。这很奇怪。
有人知道怎么解决这个问题吗?
发布于 2012-08-07 10:05:15
你export MYAPP=...了吗?导出变量使其可用于子进程,如由shell运行的java。
发布于 2012-08-08 00:39:45
在Linux中,如果您只在bash会话中设置(或导出)该变量,那么它将可用于某种"sub“会话,该会话仅可用于您刚刚执行的命令,而不适用于其他命令。
您可能会使用源(也称为“dot operator in bash”命令)。在该页面中:
使用在现有shell中运行的“`source”运行脚本时,脚本创建或修改的任何变量在脚本完成后仍将可用。
所以你可以试着做。导出VARIABLE=value,然后运行您的java程序。这类似于在Windows终端中设置一个变量,然后打开一个新终端并期望env var在那里。不会的。
这样,您就告诉bash“这个命令应该在这个特定的会话(会话的进程)中可用”。因此,当您运行OTherwise程序时,它将不存在。
发布于 2014-01-01 03:36:43
定义并导出环境变量之后。从相同的终端启动您的IDE。
https://stackoverflow.com/questions/11838219
复制相似问题