当前位置: 代码迷 >> java >> 简单的scala程序给出错误:java.lang.IncompatibleClassChangeError
  详细解决方案

简单的scala程序给出错误:java.lang.IncompatibleClassChangeError

热度:96   发布时间:2023-08-02 11:08:06.0

我正在使用斯坦福大学的主题建模工具包

这是一个在eclipse上运行的简单scala程序

为什么我Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class收到此错误Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class

import scalanlp.io._;

object Main {
  def main(args: Array[String]) {

    println("added value"+c);

    val pubmed = CSVFile("pubmed-oa-subset.csv");

    println("Success: " + pubmed.data.size + " records");


  }
}

这里完全错误

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at scalanlp.io.CSVFile$.CSVFileAsParcel(CSVFile.scala:73)
    at Main$.main(t1.scala:27)
    at Main.main(t1.scala)

提供的代码是正确的...问题是(很可能是)Scala版本问题。 该jar是用Scala 2.8(5年前)编译的,引用来自 :

TMT是在2009-10年间使用旧的Scala版本编写的,它使用的线性代数库也已不再开发。 有些人仍然使用它,并发现它是适用于LDA和Labeled LDA模型的友好软件,并且为您提供了更多功能,但目前我们真的无法提供任何支持或解决任何问题。 对于那个很抱歉。

此处描述的IncompatibleClassChangeError ,是由于二进制不兼容。 因此,唯一的选择是安装旧版本的Scala,最好是2.8.0。

  相关解决方案