Java Runtime.exec传递的环境变量(字符串)
在使用Runtime.exec(命令)调用子进程的环境中,父进程(例如shell)的环境变量是否可用?我看了API文档,但没有在那里详细说明 我的用例是这样的Java Runtime.exec传递的环境变量(字符串),java,Java,在使用Runtime.exec(命令)调用子进程的环境中,父进程(例如shell)的环境变量是否可用?我看了API文档,但没有在那里详细说明 我的用例是这样的 mainScript.sh调用JavaMainClass MainClass调用Runtime.exec(“hi.sh”) 现在,在mainScript.sh中设置并导出的变量MY_ENV是否可用于hi.sh PS:我知道第二个API采用显式String[]envp 有一些模糊的信息。是的,为什么不 从运行时开始: 每个Java应用程序都
mainScript.sh
调用JavaMainClass
MainClass
调用Runtime.exec(“hi.sh”)
现在,在mainScript.sh
中设置并导出的变量MY_ENV
是否可用于hi.sh
PS:我知道第二个API采用显式String[]envp
有一些模糊的信息。是的,为什么不
从运行时开始:
每个Java应用程序都有一个类运行时实例,该实例允许应用程序与运行应用程序的环境交互
是的,为什么不呢
从运行时开始:
每个Java应用程序都有一个类运行时实例,该实例允许应用程序与运行应用程序的环境交互
当你尝试它的时候会发生什么?我尝试过,答案是“是的,它通过了”。但我需要一个具体的答案,而不仅仅是基于实验。运行时必须尽力不传递环境变量,这样做可能会导致启动的进程失败(因为缺少
LD_LIBRARY_PATH
或只是PATH
),所以我认为依靠环境工作是安全的。当你尝试它时会发生什么?我尝试了,答案是“是的,它通过了”。但我需要一个具体的答案,而不仅仅是基于实验。运行时必须尽力不传递环境变量,这样做可能会导致启动的进程失败(因为缺少LD_LIBRARY_PATH
或只是PATH
),所以我认为依靠环境工作是安全的。