簡體   English   中英

不同JVM的java序列化問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM