如何从Scala启动外部应用程序

如何从Scala启动外部应用程序,scala,Scala,如何从Scala启动外部应用程序?由于Scala是在JVM上运行的,因此可以使用Runtime.getRuntime().exec(…)(在中查找)以与在Java中相同的方式启动外部应用程序 您还可以使用java.lang.ProcessBuilder进行更多的控制。为此编写了一个非常好的库(DSL),名为 使用该库,该库曾是SBT的一部分,但现在已与SBT分离。您可以在Scala工具库中找到它 有了这一点,它可以简单到: import Process._ "find project -name

如何从Scala启动外部应用程序?

由于Scala是在JVM上运行的,因此可以使用
Runtime.getRuntime().exec(…)
(在中查找)以与在Java中相同的方式启动外部应用程序


您还可以使用
java.lang.ProcessBuilder
进行更多的控制。

为此编写了一个非常好的库(DSL),名为

使用该库,该库曾是SBT的一部分,但现在已与SBT分离。您可以在Scala工具库中找到它

有了这一点,它可以简单到:

import Process._
"find project -name *.jar" ! log
编辑


对于Scala 2.9.0,这可以在标准库中的
Scala.sys.process
下找到。您不应该导入
进程.\u
,而应该导入
scala.sys.Process.\u
,即包对象。

这将使用默认程序打开文件:

java.awt.Desktop.getDesktop.open(new java.io.File("<PATH_TO_FILE>"))
java.awt.Desktop.getDesktop.open(新的java.io.File(“”)

Doc:

Runtime.getRuntime().exec(“外部程序”)
正是我所希望的。但上一个也是唯一一个版本是«2009年11月19日»。@Martin它在SBT内部发展,最近被添加到Scala的标准库中,位于
Scala.sys
下。很可能从Scala 2.9.0开始就可以使用。DSL的过程很酷,但很难记住:需要导入隐式,然后将命令行放入字符串中——但有一个非常重要的“砰”要强制隐式@javadba,请使用
进程
构造函数,然后使用IDE的类型补全。可能答案不太可能,但有趣的是:用这种方式打开了一个pdf文件!
java.awt.Desktop.getDesktop.open(new java.io.File("<PATH_TO_FILE>"))