Scala:无法设置环境变量

Jim*_*tha 5 scala set environment-variables

朋友们,

我试图设置环境变量“ASDF”在我的斯卡拉壳,如所描述这里

这些是我的命令:

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
Run Code Online (Sandbox Code Playgroud)

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

scala> sys.env.get("asdf")
res19: Option[String] = None
Run Code Online (Sandbox Code Playgroud)

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

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

Mal*_*lio 5

它与Scala无关,您只是误解了情况。线路尽头的地图

scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!
Run Code Online (Sandbox Code Playgroud)

不会改变这个进程的环境,你正在输入的那个;它改变了Process()函数创建的子进程的环境。

  • 有没有办法为 **current** 进程设置我的环境变量? (2认同)

jwv*_*wvh 5

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