Если вы запускаете два отдельных экземпляра JVM для двух программ, , тогда не используйте один и тот же путь к классам! Разве это не очевидно?
Возможно, вы используете CLASSPATHпеременная окружения?Это очень старая, устаревшая практика, и вы не должны этого делать.используйте параметр командной строки -classpath, чтобы вы могли легко использовать разные пути к классам для двух программ.
Старый ответ: Предполагая, что вы говорите о потоках, а не о процессах:
Лучшим решением было бы исправить A, B или C, чтобы и A, и B могли использовать одну и ту же версию C.
Или, если две версии C на самом деле ведут себя преднамеренно по-разному,используйте для них другой пакет или имена классов.
Только если вы не можете изменить A, B или C, вы должны рассмотреть техническое решение написания оболочки, которая использует разные загрузчики классов для A и Bчтобы они увидели разные версии C.