Просто реализуя интерфейс Serializable, вы не сможете «переходить между разными загрузчиками классов». Вам нужно написать код, чтобы перенести сериализованный объект на диск, а затем на другой загрузчик классов (процесс) десериализовать его. вот пример, взятый из http://www.javapractices.com/topic/TopicAction.do?Id=57:
Car car = new Car();
....
//serialize an object called it car to a file called car.ser.
try (
OutputStream file = new FileOutputStream("car.ser");
OutputStream buffer = new BufferedOutputStream(file);
ObjectOutput output = new ObjectOutputStream(buffer);
){
output.writeObject(car); // this call writes file to disk
}
catch(IOException ex){
logger.log(Level.SEVERE, "Cannot perform output.", ex);
}
Для десериализации объекта на другом загрузчик классов процесса конца// Jvm вы можете сделать это:
try(
InputStream file = new FileInputStream("car.ser");
InputStream buffer = new BufferedInputStream(file);
ObjectInput input = new ObjectInputStream (buffer);
){
//deserialize the List
Car car = (Car)input.readObject();
//display its data
System.out.println("Recovered Car: " + car);
}
catch(ClassNotFoundException ex){
logger.log(Level.SEVERE, "Cannot perform input. Class not found.", ex);
}
catch(IOException ex){
logger.log(Level.SEVERE, "Cannot perform input.", ex);
}
EDIT: Для того, чтобы пикап сериализовать файлы и десериализуйте их, вы можете использовать WatchService
Не могли бы вы перефразировать свой вопрос. Передача объектов между загрузчиками классов возможна со всеми объектами, вы получаете только Исключения при доступе к неизвестным классам. Если речь идет о том, как кодировать связь между классами в разных классах загрузчиков, сериализация не является ответом. –