【发布时间】:2010-07-21 12:56:53
【问题描述】:
我已经处理过用 Java 启动另一个 VM。 见ProcessBuilder - Start another process / JVM - HowTo?
出于某种原因,我无法在 Scala 中做同样的事情。 这是我的代码
object NewProcTest {
def main(args :Array[String]) {
println("Main")
// val clazz = classOf[O3]
val clazz = O4.getClass
Proc.spawn(clazz, true)
println("fin")
}
}
object Proc{
def spawn(clazz :Class[_], redirectStream :Boolean) {
val separator = System.getProperty("file.separator")
val classpath = System.getProperty("java.class.path")
val path = System.getProperty("java.home") +
separator + "bin" + separator + "java"
val processBuilder =
new ProcessBuilder(path, "-cp",
classpath,
clazz.getCanonicalName())
processBuilder.redirectErrorStream(redirectStream)
val process = processBuilder.start()
process.waitFor()
System.out.println("Fin")
}
}
我尝试在对象和类中定义 main。两者都在同一个 .scala 文件中或在单独的文件中。
我做错了什么?
【问题讨论】:
-
您应该提供更多关于您在编写该代码后所做的事情的详细信息:您使用了哪些工具/命令?结果如何?
-
细节和我的java问题一样。类 O3 { def main(args :Array[String]) { println("O3") } }
标签: scala process jvm fork scala-2.8