有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

变量Java系统。getEnv()

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

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

我试着遍历Java可以检索的整个环境变量,结果发现它检索除“MYAPP”之外的所有环境变量。这很奇怪

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


共 (4) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    定义并导出环境变量后。从同一终端启动IDE

  3. # 3 楼答案

    在Linux中,如果只在bash会话中设置(或导出)变量,它将可用于一种“子”会话,该会话仅可用于刚刚执行的命令,而不可用于其他任何操作

    您可能可以使用dot operator in bash(也称为“source”命令)。从页面:

    当脚本使用“source”运行时,它在现有shell中运行,脚本创建或修改的任何变量在脚本完成后都将保持可用

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

    这样,您就告诉bash“这个命令应该在这个特定的会话(会话的进程)中可用”。否则,您会告诉它“为bash会话设置这个env var,该会话将在我运行这个导出命令后结束”,因此,当您运行Java程序时,它将不存在

  4. # 4 楼答案

    试着写

    "$System.env.STOREPWD"