0

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

java.lang.NoclassDefFoundError: scala/某事

例如,如果用scalac. 我可以导入Pass.class并且Fail.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 库?否则是什么原因?

4

1 回答 1

0

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

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

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

于 2015-03-04T19:55:24.823 回答