我开始得到这个奇怪的错误;完全不确定是什么导致它 - 也许是Maven重建。我无法解释这种行为......有时它在IntelliJ中有效,有时它不起作用,当我从jar文件中运行它时失败了。
这是运行时错误:
java.lang.NoSuchMethodError: breeze.linalg.DenseVector$.canScaleD()Lbreeze/linalg/operators/BinaryOp
它出现在这段代码中:
import breeze.linalg._
import breeze.linalg.DenseVector._
var planeNormal = DenseVector.zeros[Double](39)
weights.zip(vectors).foreach case(w: Double, vector: DenseVector[Double]) =>
planeNormal :+= (vector :* w)
}
在vector :* w
函数调用中。
任何人对可能出现的问题都有任何想法?
我怀疑它的版本不匹配但没有线索在哪里修复它;我正在使用这个breeze-math包
<groupId>org.scalanlp</groupId>
<artifactId>breeze-math_2.10</artifactId>
<version>0.4</version>
和scala
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.3</version>
答案 0 :(得分:1)
你正在使用一个非常非常老的Breeze版本。请使用0.8.1(Artifact id现在只是breeze_2.10)