跨进程通信时,将序列化的对象的对象存入文件,两个进程通过读/写同一个文件来交换数据,达到通讯的效果。
中间遇到一个问题,就是在另一个进程反序列化的时候,报ClassNotFoundException异常。
原因是两进程序列化类的包名不同
进程一User类的包名是com.mrcai.activitytask,进程一User类的包名是com.mrcai.act_act,导致出错
解决办法有两种:
一、包名改成一样的
很简单,但是不同进程间要求包名相同的话,有点变态;
二、继承ObjectSreamClass,重写readClassDescriptor()方法
其中“com.mrcai.activity”和“com.mrcai.act_act”更换成你项目的包名,调用MyObjectInputStream的readObject()就ok了。