在Scala中发出本机系统命令

时间:2010-06-17 19:32:46

标签: scala system command

我想从Scala程序发出本机系统命令,并且可能会捕获输出。 (“ls”浮现在脑海中。可能还有其他方法可以在不发出命令的情况下获取目录信息,但这与我的问题无关。)它将对应于Python中的os.system(...)。

我查看过“Scala编程”。我查看了O'Reilly的“Programming Scala”。我用谷歌搜索了几个术语组合。没有运气了。有人可以给我一个例子,或者指点我可以找到一个例子的资源吗?

5 个答案:

答案 0 :(得分:29)

最好的方法是使用scala.sys.process

答案 1 :(得分:4)

import scala.sys.process._

val vimLocation: String = "whereis vim" !!

reference

答案 2 :(得分:1)

Scala在这方面与Java没有什么不同,因为您可以使用Scala的互操作功能调用任何Java API函数。例如,请参阅java.lang.ProcessBuilder

答案 3 :(得分:1)

您可以轻松地使用sys.process执行此操作:

执行系统命令并获取其状态代码(退出代码):

import sys.process._

val result = "your_command" !
println("result = "+result) // result contain zero for success or non zero for fail

从系统命令获取输出:

import sys.process._

val result = "your_command" !!
println("result = "+result) // result contain output from the command

您还有其他几个选项(管道,重定向STDOUT,附加到STDOUT和......),您可以看到this link

答案 4 :(得分:0)

Scala与Java完全互操作。因此,您可以像从Java那样从Scala调用系统命令。请参阅this以了解如何从Java调用系统命令。