разве не возможность разработчика написать один код, а пользователя - пользоваться одним и тем же софтом вне зависимости от платформы?
так платформа одна и та же - виртуальная машина Java.
или я не прав?
Я скорее склонен считать кроссплатформенными интерпретируемые приложения, хотя по сути - те же яйца только в профиль.
А еще ближе - писать код, который скомпилируется и будет работать под разными осями. Самый банальный пример - багландовская библиотека CLX позволяющая один и тот-же код собирать как в Delphi так и в Kylix. В случае с С/С++ это может быть строгое следование стандарту (ну или учет особенностей тех компиляторов, которыми программа будет собираться под разными платформами), использование кроссплатформенных средств построения интерфейса, к примеру Qt. Тогда код можно будет собрать как под виндой - той же студией, так и под Линухом, к примеру, в gcc.