Java Weka 3.8.x中的序列化错误

Java Weka 3.8.x中的序列化错误,java,scala,serialization,weka,Java,Scala,Serialization,Weka,我正在使用Scala项目中的WEKA 3.8API。当我尝试使用SerializationHelper.write(fullFilename,model)保存模型(已生成分类器)时,我得到以下异常。同样的代码适用于Weka 3.6版 我想说的是,问题在于uppersymmedensematrix是一个没有实现java.io.Serializable接口的类。 关于如何解决这个问题有什么建议吗? 提前谢谢 Caused by: java.io.NotSerializableException: n

我正在使用Scala项目中的
WEKA 3.8API
。当我尝试使用
SerializationHelper.write(fullFilename,model)
保存模型(已生成分类器)时,我得到以下异常。同样的代码适用于Weka 3.6版

我想说的是,问题在于
uppersymmedensematrix
是一个没有实现
java.io.Serializable
接口的类。 关于如何解决这个问题有什么建议吗? 提前谢谢

Caused by: java.io.NotSerializableException: no.uib.cipr.matrix.UpperSymmDenseMatrix
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[na:1.8.0_45]
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[na:1.8.0_45]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[na:1.8.0_45]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[na:1.8.0_45]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[na:1.8.0_45]

问题

我设法发现问题确实是由修改版的matrix toolkits java引起的。Weka 3.8.1附带了一份1.0.4版的matrix toolkits java,与maven central repository的版本相比稍大一些:

<groupId>com.googlecode.matrix-toolkits-java</groupId>
<artifactId>mtj</artifactId>
<version>1.0.4</version>
com.googlecode.matrix-toolkits-java
mtj
1.0.4
解决方案


在weka src.jar中加入mtj.jar而不是maven依赖项,为我解决了这个问题。

java.io.NotSerializableException:
当实例需要具有可序列化接口时抛出。你的一个类是不可序列化的,如果你没有创建很多,请尝试使用case类。是的,你是对的,但不可序列化的类是
no.uib.cipr.matrix.UpperSymmDenseMatrix
,它不是我的代码库的一部分。它在matrix-toolkits-java中。谢谢。我要试试看!这解决了问题。谢谢