我在一个简单的Web项目中使用play框架,我想从Web界面在application.conf文件中设置配置,例如,我想从Web界面更新application.conf中的应用程序 secret ,我知道不可能从 Controller 修改 application.conf 文件,所以我尝试从 Controller 创建一个新的环境变量并在 application.conf 文件中调用它,问题是我无法使用导出命令在 Scala 代码中创建新的环境变量,我尝试了这些,但没有好的结果:
第一个:
val test = "导出 MYVAR = 测试"
val ex = 测试。!!
第二个:
val pb = new ProcessBuilder("sh","-c","export VAR="+ "PATH-TO-ADD"+ "&& exec").start()
第三个:
Process("导出", Seq("MY_VAR=ttt")).!!
最佳答案
由于环境变量的工作方式,这是不可能的。
环境变量属于特定进程,只有在该进程中运行的代码才能更改环境。子流程将使用父流程中的任何导出变量进行初始化,但子流程无法更改其父流程的环境变量。
您的 Scala 程序在子进程中运行,因此它只能影响其自身和任何子进程的环境。它无法更改生成它的 shell 的环境。
如果您详细说明为什么要这样做,则可能可以通过其他方式解决该问题。
关于scala - 如何在 Linux 上从 Scala 代码运行导出命令来添加新的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625834/