Пакетирование частной JRE в Mac OS X - PullRequest
24 голосов
/ 15 января 2011

Начиная со следующей версии Mac OS X, Java больше не будет включаться в систему, и я не хочу заставлять своих клиентов устанавливать ее самостоятельно.Поэтому я хотел бы сделать то, что я делаю в Windows - связать это с моим приложением.Это также дает мне некоторую надежду на то, что он может быть включен в Mac App Store.

Где я могу загрузить JRE для Mac OS X, которую можно включить в мое приложение?Или я могу просто скопировать тот, который установлен на моем Mac?

Ответы [ 3 ]

12 голосов
/ 19 января 2011

Обновление (15/4/2013):

Как отметил Торбьерн, у Oracle теперь есть решение для этого.См. http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html. Однако я сохраняю исходный контент для «исторических целей» и потому, что это был забавный исследовательский проект.

Предыдущая версия (с изменениями):

Это отличный вопрос.Я собирался ответить, что вы просто опередили свое время - как вы указали, Java не будет удалена до выхода Lion.Однако эта статья разъясняет, что использование Java сегодня недопустимо:

Приложения, использующие устаревшие или устанавливаемые по выбору технологии (например, Java, [Требуется код PowerPC] Rosetta)будет отклонено.

В то же время, никто еще не объявил о распространяемой JRE для Mac OS X.Я думаю, что ваш лучший выбор, учитывая, что вы создаете новые возможности, - это просмотреть вики-страницу Mac OS X Port проекта OpenJDK.Он описывает , как скомпилировать ваш собственный JDK, но не четко указывает, может ли полученный JDK быть "связан" чисто или нет.Я думаю, вам придется попробовать и посмотреть: - (.

Кроме того, неясно, разрешает ли это вообще лицензирование OpenJDK (IANAL). Надеюсь, кто-то другой уже понял это в отношении Linux /Windows, хотя, конечно, правила могут быть другими для взносов Apple.

Надеюсь, это поможет. Если ничего другого, это отправная точка.

РЕДАКТИРОВАТЬ: Ясобираюсь отбросить еще одно предложение. Теперь мы знаем, что приложения Mono могут быть упакованы для магазина приложений . Кроме того, IKVM.NET - это полная реализация Java, которая работает поверхMono. Теоретически можно попытаться соединить эти две части и получить приложение Java, связанное для App Store, для которого не фактически требует JRE!

Если выпопробуйте это, я хотел бы услышать, как это работает: -).

РЕДАКТИРОВАТЬ 2: К сожалению, App Store и GPL не совместимы (см. http://www.zdnet.com/blog/open-source/no-gpl-apps-for-apples-app-store/8046). Лицензия OpenJDK не точно то же самое, что и GPL, но это довольно близко (опять же, IANAL).Поэтому Mono & IKVM.NET может быть вашим лучшим выбором.Удачи!

4 голосов
/ 23 июня 2012

В том же поиске в Интернете, где я нашел этот вопрос, я нашел эти инструкции из проекта OpenJDK. Не попробовав их сам, я не могу комментировать, насколько хорошо они работают.

Между тем, Марко Диначчи опубликовал еще одну, очень подробную статью , которая также занимается подписанием и песочницей.

0 голосов
/ 15 января 2011

Apple присоединилась к проекту с открытым исходным кодом Sun / Oracle OpenJDK в прошлом месяце, поэтому Java на Apple жива и хороша.

Просто скажите пользователю загрузить и установить OpenJDK JRE для Mac OSX (когда он станет доступен, сейчас это просто исходный код).

И нет. Вы не можете включать «папку, которая находится на вашем Mac» без разрешения, так как это защищенный авторским правом код от Apple.

Наконец, упаковка «частной JRE» является очень плохой практикой, она сделает ваше приложение раздутым, и если пользователь в конечном итоге запустит несколько приложений Java, он в итоге запустит несколько виртуальных машин Java одновременно, что является ужасной тратой системы ресурсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...