使用scala.sys.process执行dir命令报找不到文件错误的问询
问题原因
dir是Windows系统cmd.exe的内置命令,不是独立的可执行程序,scala.sys.process调用命令时默认会直接查找系统环境变量路径下的可执行文件,找不到dir对应的可执行程序,因此抛出该错误。
解决方案
Windows平台调用内置命令写法
需要显式指定通过cmd.exe执行dir命令,/c参数表示命令执行完成后自动退出cmd进程,修改后代码如下:
import scala.sys.process._ val res = "cmd /c dir".! println(res)
类Unix平台(Linux/macOS)兼容写法
如果是在类Unix平台下运行,目录列举命令ls为独立可执行文件,可以直接调用:
import scala.sys.process._ val res = "ls".! println(res)
如果需要实现跨平台兼容的命令调用逻辑,可以先判断当前运行的操作系统类型,再选择对应命令和执行方式。
内容的提问来源于stack exchange,提问作者kailing
相关产品推荐
相关产品推荐

