我cd
进入包含两个Scala类的目录。
C:\Kevin\Workspace\>dir
09/08/2013 09:13 PM 331 Max.scala
09/08/2013 09:13 PM 459 Test.scala
2 File(s) 790 bytes
2 Dir(s) 72,008,863,744 bytes free
然后,我打开了REPL:
C:\Kevin\Workspace\>scala
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import java.lang.Runtime
import java.lang.Runtime
scala> val runtime = Runtime.getRuntime
runtime: Runtime = java.lang.Runtime@55dae09c
然后(使用此post's帮助)我尝试通过scalac
编译我的* .scala文件作为Runtime#exec
的参数,但它失败了。
scala> runtime.exec("scalac Max.scala Test.scala")
java.io.IOException: Cannot run program "scalac": CreateProcess error=2, The system cannot find the file specifie
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at .<init>(<console>:12)
at .<clinit>(<console>)
如何在Scala中执行上述操作?
答案 0 :(得分:2)
我认为这不是Scala的事情,因为它是Windows的东西,我从你的第一个代码块推断出来。
在我的Mac上,我发现了这个:
scala> Runtime.getRuntime.exec("scalac")
res2: Process = java.lang.UNIXProcess@24c63dac
在Windows上,尝试提供scalac
的完全限定路径。如果这不起作用,请考虑改为使用ProcessBuilder。