将 Scala .class 文件导入 MapForce

Importing Scala .class files into MapForce

Altova Mapforce 允许从 Java .class 文件导入用户定义的函数。由于 Scala 也编译成 Java .class 文件,我想我可以互换使用它们。所以我写了一些测试对象,发现我可以成功导入 .class 文件,但是使用某些函数总是会失败

java.lang.NoclassDefFoundError: scala/something

例如,如果用scalac编译如下文件。我可以毫无问题地导入 Pass.classFail.class

object Pass {
  def echo(s: String): String = s // no errors
}
object Fail {
  def greet(name: String): String = {
    // java.lang.NoClassDefFoundError: scala/collection/mutable/StringBuilder
    "Hello, " + name 
  }  
}

使用 Pass.echo 有效,但 Fail.greet 会引发错误,java.lang.NoClassDefFoundError: scala/collection/mutable/StringBuilder.

我的理解是 Mapforce 正在为 Scala 类 搜索 Java 库。如果那是正确的,那么我如何告诉 MapForce 包含 Scala 库?不然是什么原因?

我无法按照 Lattyware 的建议将 scala 库直接传递到应用程序类路径,但将其添加到全局类路径允许 MapForce 在应用程序中使用 scala 类。

PS C:\> echo $env:CLASSPATH
.;C:\Program Files\scala\lib;

我还没有测试生成 Java 代码的效果如何。