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

时间:2016-10-09 01:51:01

标签: java linux unix

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

2 个答案:

答案 0 :(得分:1)

环境变量不起作用。

环境变量本质上是一组传递给程序的额外参数。如果该程序轮流启动一个新程序,那么它可以转发或不转发它的环境变量,它可以设置(或取消设置)任何其他环境变量,在它启动的程序中;但环境变量不是机器的全局属性,并且程序无法将环境变量发送到另一个程序只是因为它们位于同一台机器上。

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

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

export foo=bar
export baz=bip

然后使用Bash 包装器脚本启动第二个程序,该脚本首先引入键值映射(source file_that_the_first_program_wrote_to.txt),然后执行它。

答案 1 :(得分:1)

Java中没有针对“环境变量”的持久性机制。

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

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

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