首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在scala中执行命令?

如何在scala中执行命令?
EN

Stack Overflow用户
提问于 2013-12-06 06:48:00
回答 1查看 193关注 0票数 2

我想执行这个命令“点-Tpng overview.dot > overview.png ",它用于生成图像。

scala中的代码:

代码语言:javascript
运行
复制
Process(Seq("dot -Tpng overview.dot > overview.png"))

它不起作用。我还想在scala中打开这个图像。我在Ubuntu工作。默认情况下,图像查看器将打开图像。但是我在终端上输入了"eog overview.png“,它会报告错误。

代码语言:javascript
运行
复制
** (eog:18371): WARNING **: The connection is closed

因此,我不知道如何让scala打开这个图像。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 07:02:48

不能在命令字符串中使用stdout重定向>。您应该使用#>#|运算符。参见process文档中的示例。

这会将test写入test.txt

代码语言:javascript
运行
复制
import scala.sys.process._
import java.io.File

// use scala.bat instead of scala on Windows
val cmd = Seq("scala", "-e", """println(\"test\")""") #> new File("test.txt")
cmd.!

就你而言:

代码语言:javascript
运行
复制
val cmd = "dot -Tpng overview.dot" #> new File("overview.png")
cmd.!

或者仅仅是这样(因为dot接受输出文件名为-ooutfile):

代码语言:javascript
运行
复制
"dot -Tpng overview.dot -ooverview.png".!
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20417780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档