В настоящее время я работаю над веб-приложением, где мы регулярно делаем нашу разработку на Windows, но тестирование и производство на Linux. Раньше я писал приложения с графическим интерфейсом, где один и тот же код работал как на Windows, так и на Linux. Я никогда не делал Java на Mac, но я предполагаю, что это порты, а также между Windows и Linux.
Красота Java - это то, что 90% времени вам даже не нужно об этом думать. Вы просто пишете код, который будет работать на платформе, на которой вы разрабатываете, и это будет волшебным.
Единственное, что обычно является проблемой для меня, - это работа с файлами. В Java есть некоторые функции, которые помогают, но иногда вам приходится уходить с пути, чтобы воспользоваться ими. Например, имена файлов различны: на окнах у вас есть спецификатор диска (например, «C:»), а в Linux вы этого не делаете, а в Windows вы разделяете имена каталогов с обратными косыми чертами, а на Linux вы их разделяете с помощью косой черты. Есть функции, позволяющие вам обрабатывать это с помощью общего кода, но бывают случаи, когда это боль. И т. Д.
Если вы хотите использовать определенные шрифты, вы не найдете одинаковые шрифты на разных платформах. Но вы не можете полагаться на поиск определенных шрифтов в разных ящиках с той же ОС. Если вы хотите использовать определенные шрифты, вам действительно нужно проверить, какие шрифты доступны на коробке, и позволить пользователю выбрать тот, который им нужен, или попросить программу изучить характеристики шрифта, чтобы выбрать один.
Мне тяжело думать о чем-то еще, что было проблемой для меня. Я уверен, что если вы попробуете, вы можете придумать что-то, что нужно сломать на одном или другом, но это единственное, что я помню, когда я сталкивался, не ища проблем.
'' Напишите один раз, отлаживайте везде! »' :-) – SLaks
Неплохо, это сохранилось через 8 минут без добавления общей суммы переполнения стека. – Pool
@Slaks: На самом деле, у меня есть несколько приложений графического интерфейса Java, которые, похоже, хорошо работают в Windows, Linux и OSX с не одним конкретным заявлением O/S. –