异常java.io.InvalidClassException的解决方法


对象序列化实现Serializable会出现java.io.InvalidClassException的解决方法


错误如图所示:

alt text


1
java.io.InvalidClassException: cat.uwu.begin_java.Evil; local class incompatible: stream classdesc serialVersionUID = 1361392555563942995, local class serialVersionUID = -8992112659118101069

本地解决办法:


给Evil类加上serialVersionUID:


原:

1
2
public class Evil implements Serializable {
private String cmd;

现:

1
2
3
public class Evil implements Serializable {
private static final long serialVersionUID = -8992112659118101069L;
private String cmd;

远程服务器解决办法(ctf环境):


如果你有源码,请直接使用源码的java类,不要进行任何修改。

如果你有编译的jar文件,你可以直接反编译出问题的class文件成java文件,然后不做任何修改地直接放在本地项目上