Ответ 1
Хорошие новости
Да, вы можете отправить Java приложение в Mac App Store. В прошлом это не так, но это правда, по крайней мере, в настоящее время в 2013 году.
Одним из примеров является успешное MoneyDance приложение для личных финансов в настоящее время доступно для продажи в Mac App Store.
Плохая новость
Подготовка и отправка приложения не является простым и легким. Вы должны прыгать через некоторые обручи.
- Ваше приложение не может зависеть от установки Java на Mac. Вы должны включить JRE (Java Runtime Environment) в ваше приложение Mac.
- Вы должны написать тонкую оболочку Objective-C вокруг вашего приложения Java. Исходный код и примеры/учебные пособия доступны в Интернете.
- Как и любое другое приложение, вы должны пройти через всю сложность сложной сборки и развертывания rigmarole с ограничениями безопасности, которые Apple требует от любого приложения Mac App Store.
Дополнительная информация
- Две статьи, Возьмите приложение Java в Mac App Store и Forking OpenJDK для удовольствия и прибыли, Марко Диначчи. Эти статьи могут предоставить другую полезную информацию, но, к счастью, их обсуждение разветвления JDK теперь устарело. Он и другие предоставили необходимые исправления, включенные в официальные выпуски.
- Как создать установщик Mac OS X для Java-приложения (обновлено для Mac OS X 10.8 - Mountain Lion) от Dem Pilafian Программное обеспечение Center Key.
- Упаковка приложения Java для распространения на Mac (Oracle)
- Отправка в Mac App Store (Apple)
Кстати, вы можете использовать Swing и JavaFX в вашем приложении. JavaFX теперь в комплекте с Java, по крайней мере, от Java 7 Update 40 в соответствии с этими Примечания к выпуску.
Java 9
Недавно выпущенная Java 9 должна сделать этот процесс упаковки приложения со временем выполнения еще проще и лучше.
Модули
Java 9 приносит "модульность", Система Java Platform Module (JPMS), где примерно 5000 классов, связанных с JVM, сгруппированы в около сотни кусков, известных как модули. Вы можете включать только модули, содержащие классы, фактически используемые вашим конкретным приложением, а также перемещение по каждой библиотеке. Если вы не используете JSON или CORBA, тогда вам не нужно включать модули JSON или CORBA.
Новый инструмент jlink делает это для вас, для сборки и оптимизации набора модулей и их зависимостей в пользовательское время выполнения образ. В качестве бонуса выполняется некоторая оптимизация времени ссылки, чтобы ускорить запуск приложения.
Эти функции поддерживаются в 64-разрядных системах macOS вместе с другими платформами.
Собственная компиляция
Java 9 также предоставляет новую поддержку для собственного компиляции, для создания приложения, оптимизированного для конкретного оборудования. Но эта способность экспериментальна и еще не готова к производству.