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

scala – 执行shell进程时设置当前工作目录

发布时间:2020-12-16 09:16:36 所属栏目:安全 来源:网络整理
导读:我想在我的源代码中调用sbt update来更新多个sbt项目.在 shell中这很简单: cd /path/to/project sbt update 但是如果我在我的代码中使用scala.sys.process,它将不记得cd因此sbt被调用在错误的目录中.这样的代码: import scala.sys.process._("cd /path/to/
我想在我的源代码中调用sbt update来更新多个sbt项目.在 shell中这很简单:

cd /path/to/project && sbt update

但是如果我在我的代码中使用scala.sys.process,它将不记得cd因此sbt被调用在错误的目录中.这样的代码:

import scala.sys.process._
("cd /path/to/project" #&& "sbt update").!!

在文档中没有找到通过控制台设置sbt的项目路径的任何可能性.如果这样的事情会很好:

"sbt -projectPath /path/to/project update".!!

如果这样的事情是可能的话,这样会给我带来很多麻烦! (特别是它在UNIX和Windows上运行.)

解决方法

在Process对象上使用一个ProcessBuilder工厂方法:

sys.process.Process(Seq("sbt","update"),new java.io.File("/path/to/project")).!!

有关更多文档,请参阅scaladoc file for the sys.process package.不幸的是,它没有提到“当前工作目录”参数,但它们在对象Process的文档中.

(编辑:李大同)

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

    推荐文章
      热点阅读