首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.io.StreamCorruptedException:无效类型代码: 9D

java.io.StreamCorruptedException:无效类型代码: 9D
EN

Stack Overflow用户
提问于 2013-10-22 18:22:19
回答 1查看 475关注 0票数 0

我试图让一个jar文件在我的Linux服务器上运行。在我的Windows桌面上,我可以使用以下命令很好地执行jar文件:

代码语言:javascript
复制
java -Xss1000m -XX:-UseGCOverheadLimit -Xmx5048m -jar test.jar

但是,当我在Linux服务器上运行它时,会出现以下错误:

代码语言:javascript
复制
java.io.StreamCorruptedException: invalid type code: 9D
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1374)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1988)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1912)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1795)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
    at com.test.test.Main.main(Main.java:41)

我的代码是:

代码语言:javascript
复制
public class Main {
public static void main(String[] args) throws Exception {
    String fromTextFile = "";
    String path = "";

    if (!SystemUtils.IS_OS_WINDOWS)
        path = "/var/www/tomcat/fetch/";

    fromTextFile = path + "resources/ac_geonames_country_all.txt";

    AhoCorasick tree = new AhoCorasick();

    ObjectInputStream ois;
    try {
        ois = new ObjectInputStream(new FileInputStream(fromTextFile));
        tree = (AhoCorasick) ois.readObject();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-22 20:56:46

我设法让它起作用了。我直接在Linux服务器上重新创建了这些文件。现在一切都很好。要么是文件传输过程中出了问题。或者Java在Linux上以不同的方式序列化文件。毫无线索。

@EJP谢谢你指出这一点。然后文件传输会把文件搞乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19525462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档