将Scala .class文件导入MapForce

时间:2015-03-03 15:59:58

标签: scala map-force

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正在Java库中搜索Scala类。如果这是正确的,那么我如何告诉MapForce包含Scala库?否则,原因是什么?

1 个答案:

答案 0 :(得分:0)

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

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

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