Scala:无法设置环境变量

时间:2017-03-07 02:30:16

标签: scala set environment-variables

我试图设置环境变量" asdf"在我的Scala shell中,如here

所述

这些是我的命令:

scala> import scala.sys.process.Process
import scala.sys.process.Process

scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!
Hello, world!
res18: Int = 0

但是当我尝试回读环境变量时:

scala> sys.env.get("asdf")
res19: Option[String] = None

输出显示"无"。如何在当前会话中正确设置环境变量

PS - 请不要低估这一点;我真的很努力,但无法解决我的问题

2 个答案:

答案 0 :(得分:2)

它与Scala无关,你只是误解了这种情况。行尾的地图

scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!

不会改变进程的环境,即您输入的进程;它改变了Process()函数创建的子进程的环境。

答案 1 :(得分:0)

Scala / Java进程不允许修改自己的环境。您可以使用scala.util.Properties对象检查环境变量和属性。 (文档为here。)可以添加/删除/更改属性,但环境不能。