使用Scala的运行时

时间:2014-02-04 22:36:04

标签: scala runtime

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中执行上述操作?

1 个答案:

答案 0 :(得分:2)

我认为这不是Scala的事情,因为它是Windows的东西,我从你的第一个代码块推断出来。

在我的Mac上,我发现了这个:

scala> Runtime.getRuntime.exec("scalac")
res2: Process = java.lang.UNIXProcess@24c63dac

在Windows上,尝试提供scalac的完全限定路径。如果这不起作用,请考虑改为使用ProcessBuilder