[英]java serialization problems with different JVMs
我在使用Java中的序列化時遇到了問題。 我在網上搜索了一個解決方案,但還沒有找到答案。
問題是這個 - 我有一個Java庫(我有代碼,我在執行代碼之前將它導出到一個存檔),我需要使用兩個不同的JVM。 一台JVM在服務器上(Ubuntu,運行Java(TM)JRE SE運行時環境(版本1.7.0_09-b05)),另一台運行在Android 2.3.3上。 我在Java 1.6中編譯了庫。
現在,我正在嘗試導入到客戶端,從服務器導出的對象,但是我收到此錯誤:
java.io.InvalidClassException:[Lweka.classifiers.functions.MultilayerPerceptron $ NeuralEnd ;; 不兼容的類(SUID):[Lweka.classifiers.functions.MultilayerPerceptron $ NeuralEnd ;: static final long serialVersionUID = -359311387972759020L; 但預計[Lweka.classifiers.functions.MultilayerPerceptron $ NeuralEnd;:static final long serialVersionUID = 1920571045915494592L;
我在類MultilayerPerceptron$NeuralEnd
上聲明了一個顯式的串行版本UID,如下所示:
protected class NeuralEnd extends NeuralConnection {
private static final long serialVersionUID = 7305185603191183338L;
}
其中NeuralConnection實現了java.io.Serializable接口。 如果我做一個的serialver MultilayerPerceptron$NeuralEnd
我收到我宣布的serialVersionUID。 那么,為什么兩個JVM都改變了這個值呢? 你能幫助我嗎?
謝謝,Alberto
我認為沒有解決方案。 序列化在不同的JVM版本之間不起作用(Dalvik甚至不是JVM ......)。 尋找其他解決方案,如JSON / XML對象序列化。
您的serialVersionUID值是錯誤的。 將其設置為錯誤消息中的“預期”值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.