Подтвердить что ты не робот

Объединение частной JRE на Mac OS X

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

EDIT: Я собираюсь выбросить еще одно предложение. Теперь мы знаем, что Моно приложения могут быть упакованы в App Store. Кроме того, IKVM.NET - это полная реализация Java, которая работает поверх Mono. Теоретически вы могли бы попытаться объединить эти две части и получить Java-приложение, поставляемое в App Store, которое не действительно требует JRE!

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

EDIT 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 могут быть вашим лучшим выбором. Удачи!

Ответ 2

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

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

Ответ 3

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

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

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

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