问题标签 [scalap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
601 浏览

scala - 是否可以从 scala 脚本中使用 scalap?

scalap用来读出一些案例类的字段名称(如本问题所述)。案例类和scalap用于分析它们的代码都已编译并放入类路径上的 jar 文件中。

现在我想运行一个使用此代码的脚本,所以我按照说明操作并想出了类似的东西

这不起作用:

java.lang.ClassCastException: scala.None$ 不能在 scala.tools.nsc.interpreter.ByteCode$.caseParamNamesForPath(ByteCode.scala:45) 在 scala.tools.nsc.interpreter.ProductCompletion.caseNames( ProductCompletion.scala:22)

但是,当我编译所有内容时,代码工作得很好。我尝试了其他scala选项,例如-savecompiled,但这没有帮助。这是一个错误,还是原则上不能工作?(如果是这样,有人可以解释为什么不这样做吗?正如我所说,要分析的案例类scalap是编译的。)

注意:我使用 Scala 2.9.1-1。

编辑

这是我本质上想要做的(提供一种创建案例类的多个实例的简单方法):

注意:我继续使用 Scala 2.9.2,错误保持不变(所以可能不是错误)。

0 投票
2 回答
1039 浏览

scala - 为什么我在运行时需要 Scala 编译器?(具有 Scalap 依赖性的 Play2/Salat)

我正在使用 Scala / Mongo / Casbah / Salat / Play2,当我尝试使用 Salat 时,它似乎依赖于 Scalap。

它在运行应用程序时工作正常,play runplay start我得到以下堆栈:

scala/tools/nsc/util/ClassPath$JavaContext在 Scala 编译器项目中,所以我添加了 SBT 依赖项:

现在它也可以正常工作play start

但是,运行我的项目时必须使用 scala 编译器的运行时依赖项是正常的吗? 为什么它可以在play run没有 scala 编译器依赖的情况下工作?不在生产模式下运行时是否自动嵌入?

谢谢