在Java中以编程方式设置Linux环境变量

Ahm*_*aya 10 java linux

我可以通过RunTime类运行Linux命令.有没有办法以编程方式从Java设置Linux全局环境?

我想通过Java模拟以下Linux命令语句

root@machine:/tmp# export TEST=v2
Run Code Online (Sandbox Code Playgroud)

我已经使用了ProcessBuilder,但是TEST变量没有改变.

ProcessBuilder pb = new ProcessBuilder("/bin/bash","-c","export TEST=v3" + "&& exec");
Run Code Online (Sandbox Code Playgroud)

更新:实际上我的最终目标是使用EMAIL_NAME环境作为电子邮件地址,当我的应用程序和计算机都启动并停止时,这些操作将发送给EMAIL_NAME.在这种情况下,我理解不可能在纯Java代码上设置linux全局环境.所以我有一个解决方案是EMAIL_NAME将保存在一个文件中,它将被linux脚本或java代码更新或读取.

Rya*_*art 10

设置环境变量时,仅适用于设置变量的进程生成的进程,因此,如果您确实要求设置一个影响整个系统的变量,那么不.你不能在Linux中以交互方式真正做到这一点.您可以做的最好的事情是更改其中一个系统启动文件以包含所述变量,以便将来执行的任何操作都包含该变量.

如果您只是想使用一些变量集来运行多个进程,那么ProcessBuilder允许您为使用它生成的进程设置环境.为这几个进程重用一个环境非常简单.