Возможно, вы используете в своем коде Java что-то, что не может работать в безголовой системе, например графические компоненты (объекты Swing, изображения и т. Д.). Некоторые из этих компонентов, вместо того, чтобы напрямую обрабатываться Java, обрабатываются базовой платформой (само ядро Windows или сервер X-Window в Unix). Таким образом, общая производительность приложения повышается.
Итак, вопрос в том, хорошо, если он работал на Java 1.4, почему он не работает на 1.5? Моя ставка, учитывая повышение производительности после Java 1.2, которое Swing получал со временем, заключается в том, что Sun перевела управление некоторыми графическими объектами на уровень ОС для повышения производительности. Поэтому, если вы не можете придерживаться версии 1.4, вам следует пересмотреть свой код.
Эта хорошая статья поможет вам понять, как изменить приложение, чтобы оно было безголовым.