Благая весть
Да, вы можете отправить приложение Java в Mac App Store. Не верно в прошлом, но это верно, по крайней мере, на данный момент в 2013 году.
Одним из примеров является успешное приложение MoneyDance для личных финансов, которое в настоящее время доступно для продажи в Mac App Store.
Плохие новости
Подготовка и отправка приложения не являются ни простыми, ни легкими. Вы должны прыгнуть через несколько обручей.
- Ваше приложение не может зависеть от установки Java на Mac. Вы должны включить JRE ( Java Runtime Environment ) в свое приложение Mac.
- Вы должны написать тонкую оболочку Objective-C вокруг вашего Java-приложения. Исходный код и примеры / учебные руководства доступны в Интернете.
- Как и в любом другом приложении, вы должны пройти через все трудности сложной сборки и развертывания с ограничениями безопасности, которые Apple требует от любого приложения Mac App Store.
Подробнее
Кстати, вы можете использовать как Swing , так и JavaFX в своем приложении. JavaFX теперь поставляется в комплекте с Java, по крайней мере, начиная с Java 7 Update 40 в соответствии с этими Замечаниями по выпуску .
Java 9
Недавно выпущенная Java 9 должна упростить и улучшить процесс упаковки приложения во время выполнения.
Модули
Java 9 приносит «модульность», Java Platform Module System (JPMS) , где приблизительно 5000 классов, связанных с JVM, сгруппированы в около ста блоков, известных как modules . Вы можете включать только модули, содержащие классы, фактически используемые вашим конкретным приложением, а не перемещаться по каждой библиотеке. Если вы не используете JSON или CORBA , вам не нужно включать модули, связанные с JSON или CORBA.
Новый инструмент jlink делает эту работу за вас, собирая и оптимизируя набор модулей и их зависимостей в пользовательский образ времени выполнения. В качестве бонуса выполняется некоторая работа по оптимизации времени соединения, чтобы ускорить запуск вашего приложения.
Эти функции поддерживаются в 64-битных системах MacOS и других платформах.
Собственная компиляция
Java 9 также предоставляет новую поддержку нативной компиляции для создания приложения, оптимизированного для конкретного оборудования. Но эта способность является экспериментальной и еще не готова к использованию.
Обновление от 2018
Oracle объявил об окончании развертывания веб-технологии , включая Java Web Start , ранее рекомендованный путь для настольных приложений. Поэтому теперь Oracle ожидает, что все приложения Java будут поставляться в комплекте с JVM, как это делается с помощью инструмента jlink
, упомянутого выше.
Итак, процесс упаковки приложения в среду выполнения Java, который был чем-то редким только для Apple App Store, теперь стал мейнстримом. Oracle ожидает, что любое настольное приложение на основе Java будет установлено таким образом.