Java

Действительно ли моя Java программа будет доступна всем пользователям с любой ОС включая рутанутый андроид?

и другие мобильные системы
К сожалению нет =(
ДД
Дима Долгих
370
Лучший ответ
Дима Долгих Хотя ее тугая кроссплатформленность касается в основном телефонов, а с линуксом все нормально. Про др. ОС не знаю, на сколько она кроссплатформленна.
Конечно, нет.

1) На Android совершенно свое API для GUI и не только.
Десктопный GUI-фреймворк Swing несовместим с Android.

1.1) Вряд ли вы будете запускать на Android приложение формата *.jar
Да и вряд ли вы его выложите в Google Play.
Нужно скомпилировать в *.apk, добавить манифест, добавить разрешения permissions...

2) На iOS вообще жестко.
Приложение на Java вообще невозможно скомпилировать в *.ipa, насколько я знаю.
А *.jar опять же не будешь запускать там, и в App Store не выложишь.

2.1) Да и библиотка для GUI у этой ОСи, опять же своя.

3) На Windows Phone аналогично.
*.jar там не принято использовать, вообще не принято левые приложения не из Магазина Windows.
И в магазин не выложить.

3.1) И снова API у этой ОС совсем своё, так что я очень сомневаюсь, что какой-нибудь Swing там заработает.

4) На маке, говорят, работает, НО приложения под мак вроде тоже принято из App Store качать, а *.jar как туда выложишь...

5) А самое главное - даже для того узкого круга ОС, под которые можно писать на джаве (т. е. винда и линукс, ну и мак с большой натяжкой), она очень плохо заточена, многие фичи (особенно в области GUI) отсутствуют или убоги, приходится делать свои "велосипеды".
Подумайте, нужна ли вам такая кроссплатформенность.

НО С ДРУГОЙ СТОРОНЫ:
все вышеперечисленное верно для случая, когда мы создаем готовое приложение, рассчитанное на юзера.
А вот если писать библиотеку, рассчитанную на разработчика, и это не гуевая библиотека, то вполне возможно, что несовместимостей с API не будет, да и проблем с форматом тоже, т. к. *.jar можно засунуть и в *.apk тоже.
Ваша библиотека сможет использоваться и под Windows/Linux, и под Android, и возможно на встраиваемых системах.
Примеры - Apache POI, MySQL Connector/J.
Так что, если хотите библиотеку, кроссплатформенную и на десктопе и на андроиде, то под Linux и Android сойдет библиотека на Java, да и под винду кое-как тоже (хотя под винду желательно все же портировать на C#).
Ivan Taple
Ivan Taple
26 662