使用Java程序设置/创建环境变量,该程序在linux中执行prgram后保持不变

使用Java程序设置/创建环境变量,该程序在linux中执行prgram后保持不变,java,linux,unix,Java,Linux,Unix,我需要创建一个java解决方案,它可以使用java代码创建/设置特定的环境变量。这些新的环境变量将由同一台机器上的另一个java程序使用。我发现可以使用processbuilder在同一进程中创建环境变量的代码 环境变量不是这样工作的 环境变量本质上是传递到程序中的一组额外参数。如果该程序依次启动一个新程序,那么它可以转发其环境变量,也可以不转发,还可以在它启动的程序中设置(或取消设置)任何其他环境变量;但是环境变量不是一台机器的全局属性,程序无法仅仅因为环境变量在同一台机器上就向另一个程序发送

我需要创建一个java解决方案,它可以使用java代码创建/设置特定的环境变量。这些新的环境变量将由同一台机器上的另一个java程序使用。我发现可以使用processbuilder在同一进程中创建环境变量的代码

环境变量不是这样工作的

环境变量本质上是传递到程序中的一组额外参数。如果该程序依次启动一个新程序,那么它可以转发其环境变量,也可以不转发,还可以在它启动的程序中设置(或取消设置)任何其他环境变量;但是环境变量不是一台机器的全局属性,程序无法仅仅因为环境变量在同一台机器上就向另一个程序发送环境变量

相反,您需要第一个程序将必要的键值映射存储在主机上的某个文件中,第二个程序读取这些映射

也就是说,您可能会发现使用环境变量作为解决方案的一部分很有帮助;例如,您可以让第一个程序以Bash将解释为设置环境变量的格式编写键值映射:

export foo=bar
export baz=bip

然后使用Bash包装器脚本启动第二个程序,该脚本首先拉入键值映射(
源文件,\u它是\u第一个\u程序\u写的\u到.txt
),然后执行它。

Java中没有“环境变量”的持久化机制

这意味着您必须查看其他选项以保存信息

当您谈论适合环境变量的简单事物时,自然要使用java


含义:在定义的位置有一个(或多个)属性文件;有些Java程序只是读取这些文件;而其他人也可能会操纵这些文件的内容。

提示:在你的问题上添加这么多标签不是一件好事。您有一个java linux问题;因此,不需要windows标记!