簡體   English   中英

java.io.IOException:無法運行程序“ scala”:CreateProcess錯誤= 2,

[英]java.io.IOException: Cannot run program “scala”: CreateProcess error=2,

我想編譯這個:

import scala.sys.process._

val output = "scala".!!

但是給我看這個:

java.io.IOException:無法運行程序“ scala”:CreateProcess錯誤= 2,系統找不到指定的文件

這也不起作用:

val cmd = "\"C:\\Program Files (x86)\\scala\\bin\\scalac.bat\\\""

val output = "cmd".!!

我的環境變量也很好。 (對於Java:C:\\ Program Files \\ Java \\ jdk1.8.0_111 \\和scala: C:\\ Program Files(x86)\\ scala和路徑變量: %JAVA_HOME%\\ bin%SCALA_HOME%\\ bin

在cmd工作中鍵入“ scala”。 此代碼也可以工作:

import scala.sys.process._

val output = "java".!!

Windows 10

命令scala是帶有交互式控制台的REPL。 您正在嘗試從交互式控制台運行交互式命令嗎?

它應可與ls -l類的任何非交互式命令配合使用(在Dirdows中為DIR )或平滑地進行date例如以下示例(在Unix中),

scala> val output = "date".!!
output: String =
"Mon May 15 14:52:54 PDT 2017
"

要么

scala> val output = "java -version".!!
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
output: String = ""

要么,

scala> Seq("echo", "urayagppd") #>> new File("mylogs.log")
res2: scala.sys.process.ProcessBuilder =  ( [echo, urayagppd] #| /Users/prayagupd/myrepo/mylogs.log )

但是要運行諸如ssh之類的交互式過程,

scala> val scalaProcess = Process("""scala""")
scalaProcess: scala.sys.process.ProcessBuilder = [scala]

scala> val exitCode = scalaProcess.!
Welcome to Scala 2.12.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111).
Type in expressions for evaluation. Or try :help.

scala> :quit
exitCode: Int = 1

scala> val p = scalaProcess.run
p: scala.sys.process.Process = scala.sys.process.ProcessImpl$SimpleProcess@af9dd34

scala> Welcome to Scala 2.12.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111).
Type in expressions for evaluation. Or try :help.

scala> :quit

scala> val exitCode = p.exitValue
exitCode: Int = 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM