在运行时编译并执行 Scala 代码

发布于 2024-12-05 12:56:52 字数 228 浏览 0 评论 0原文

是否可以在运行时在 Scala 或 Java 中将 scala 代码编译并作为字符串执行?

我的想法是使用 Scala 构建 DSL,然后让 Java 程序员在 Java 中使用 DSL。

我听说 scala.tools.nsc.Interpreter 类可以执行类似的操作,但是当我将其导入到我的 scala 文件中时,我得到“对象工具不是 scala 包的成员”。

那么有人可以给我提示吗?

Is is possible to compile and execute scala code as a string at runtime either in Scala or in Java?

My idea is to build a DSL using Scala then let Java programmers use the DSL inside Java.

I heard that the class scala.tools.nsc.Interpreter can do something like that, but when I imported it inside my scala file, I got "object tools is not a member of package scala."

So could anybody give me a hint?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寂寞陪衬 2024-12-12 12:56:53

在 2.10.0 中,我们公开了 Scala 反射 API,其中包括运行时编译工具。更多详细信息可以在这里找到:从字符串生成一个类并在 Scala 2.10 中实例化它

In 2.10.0 we expose Scala reflection API, which among everything else includes a runtime compilation facility. More details can be found here: Generating a class from string and instantiating it in Scala 2.10.

你的呼吸 2024-12-12 12:56:53

我推荐你 twitter-utilEval

I recommend you twitter-util's Eval

べ映画 2024-12-12 12:56:53

对于 scala3,现在可以使用 dotty 来实现:

sbt 依赖项例如 "org.scala-lang" %% "scala3-compiler" % "3.1.3"

For scala3 this can be now achieved with dotty:

The sbt dependency is e.g. "org.scala-lang" %% "scala3-compiler" % "3.1.3"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文