如何使用twitter util-eval执行代码并查看结果

时间:2017-06-27 02:08:37

标签: scala twitter-util

我正在尝试使用twitter util-eval库编译并执行“hello world”程序。但是无法打印结果。

我的目的不仅仅是编译和执行hello world示例,应该编译和运行具有依赖项的大型scala文件。

import com.twitter.util.Eval
object ScalaCompiler3 {
     def main(args: Array[String]): Unit = {
         val eval = new Eval()
         val fileContents = "class Test {\n\n println (\"Hello World!\")\n\n}"
         val compile = eval.apply[Unit](fileContents)
         println(compile)
     }
}

如何执行代码并查看结果?我无法获得util-eval的适当API文档。使用来自enter link description here

的util-eval_2.11-6.43.0.jar

1 个答案:

答案 0 :(得分:0)

正如评论中提到的erip,你正在编译的源字符串构成了一个类Test,但是因为你从未实例化它,所以它永远不会在其中运行代码。

如果替换:

val fileContents = "class Test {\n\n println (\"Hello World!\")\n\n}"

使用:

val fileContents = "println(\"Hello World!\")\n\n}"

这将执行您要执行的代码。祝你的项目好运!