Это зависит от магии, которая происходит в вашей части "как-то общаться удаленно".
Если эта связь осуществляется через RMI или аналогичную технологию, то это будет хорошо. Приложение B создаст удаленный прокси для объекта Operation
в JVM A, а вызовы методов на этом прокси генерируют HTTP-запросы к JVM A, которые сопоставляются с фактическим объектом, живущим в этой JVM (которая имеет доступ к классу реализации) .
Если эта связь осуществляется путем сериализации объектов и отправки их по проводам, то это не будет работать. Когда объект из приложения A поступает в JVM B, десериализация завершится неудачно (с ClassNotFoundException
или подобным).
Могут быть и другие технологии удаленного взаимодействия, в этом случае все зависит от реализации. Я знаю, что загрузчики классов могут загружать классы из байтовых массивов, и, таким образом, концептуально очень возможно иметь такие загрузчики классов, которые могли бы загружать классы из удаленных источников. Я полагаю, что сетевая библиотека теоретически могла бы сериализовать реальный класс по проводам таким образом, поэтому, хотя JVM B изначально не знала бы о реализующем классе, ее загрузчик классов мог бы быть обеспечен байт-кодом класса, как требуется.