加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上的Scala代码中运行shell命令似乎需要命令的完整绝对

发布时间:2020-12-14 01:42:24 所属栏目:Windows 来源:网络整理
导读:当我尝试在Mac上运行 shell命令时,它按预期工作如下: scala import scala.sys.process._import scala.sys.process._scala """protractor --version"""!warning: there were 1 feature warning(s); re-run with -feature for detailsVersion 0.24.0res12: In
当我尝试在Mac上运行 shell命令时,它按预期工作如下:
scala> import scala.sys.process._
import scala.sys.process._

scala> """protractor --version"""!
warning: there were 1 feature warning(s); re-run with -feature for details
Version 0.24.0
res12: Int = 0

scala>

但如果我在Windows上这样做,我会得到这个:

scala> import scala.sys.process._
import scala.sys.process._

scala> """protractor --version"""!
warning: there were 1 feature warning(s); re-run with -feature for details
java.io.IOException: Cannot run program "protractor": CreateProcess error=2,The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)

好像我必须在Windows上这样做:

scala> import scala.sys.process._
scala> """C:UserstwerAppDataRoamingnpmprotractor.cmd --version"""!
warning: there were 1 feature warning(s); re-run with -feature for details
Version 0.24.0
res11: Int = 0

scala>

我必须提供命令的完整绝对路径.

但我确信该命令在路径中可用.

反正有没有避免这个?

你可以试试这个:
val command = Seq("protractor","--version")
val os = sys.props("os.name").toLowerCase
val panderToWindows = os match {
  case x if x contains "windows" => Seq("cmd","/C") ++ command
  case _ => command
}
panderToWindows.!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读