Как распространять Java-приложение - PullRequest
6 голосов
/ 22 февраля 2011

Я хотел бы узнать о различных вариантах распространения приложения Java.

Я знаю, что вы можете

  • Распространение исходного кода и предоставление пользователям возможности самостоятельно его компилировать или предоставлять файлы make и т. Д.
  • Упакуйте его в JAR и получите самораспаковывающиеся архивы
  • и (я уверен, множество других способов)

Я надеюсь получить некоторые объяснения о наиболее распространенных опциях (и о тех, о которых я не думал) и, в частности, требуют ли они, чтобы у пользователя была JVM, или он может быть связан с одним - лично я » Я не слишком увлекаюсь установщиком, который останавливается из-за отсутствия JVM. Кто говорит, что приложение нуждается в установщике, автономные решения тоже подойдут.

Кроме того, стоит спросить, как обращаться с кроссплатформенным распределением, exe vs dmg и т. Д ...

Моя основная мотивация для этого вопроса (который, как я ценю, похож на другие) - это поиск решений, которые не требуют, чтобы у пользователя уже была установлена ​​JVM - но для полноты я спрашиваю в целом.

Большое спасибо

Ответы [ 4 ]

5 голосов
/ 22 февраля 2011

Распространите исходный код и дайте пользователям возможность скомпилировать его самостоятельно или предоставить файлы make и т. Д.

Это, вероятно, нормально для проектов с открытым исходным кодом, но очень необычно для всего коммерческого.Я бы порекомендовал предоставить его в качестве опции для технарей, но распространение JAR также

Упакуйте его в JAR

Я бы назвал это лучшей практикой

и есть самораспаковывающиеся архивы

Как насчет сделать вместо этого исполняемый файл ?

Я надеюсь на некоторыеобъяснения о наиболее распространенных опциях (и о тех, о которых я не задумывался) и, в частности, требуют ли они, чтобы у пользователя была JVM, или он может быть связан с одним из них - лично мне не очень нравится инсталлятор, который останавливаетиз-за отсутствия JVM.

Я не считаю законным объединять JRE. Тем не менее, довольно очевидно, что решение на основе Java не будет работать без Java.OpenOffice и многие другие не могут быть установлены без установленной JRE.Я бы сказал, что это понятно и хорошо.

IzPack кажется хорошим решением для создания установщиков на основе Java.

Моя основная мотивация для этого вопроса(что я ценю, похоже на другие) - это найти решения, которые не требуют, чтобы у пользователя уже была установлена ​​JVM

Как я уже писал, Я думаю, что не разрешено связыватьJRE [ ОБНОВЛЕНИЕ: это законно, читать этот документ для справки] (а также не очень хороший вариант, так как вам придется объединять множество различных комбинаций ОС / архитектуры)).Таким образом, единственным другим способом была бы нативная компиляция (я не могу вам с этим помочь, извините).

3 голосов
/ 08 мая 2011

InstallBuilder позволяет легко распространять Java-приложения и связывать JVM (хотя сама по себе не требует Java, поэтому, как вы упоминаете, вы никогда не получите ошибок, потому что у конечного пользователя нет JVM на компьютере ). Это коммерческий продукт (diclaimer, я являюсь первоначальным разработчиком), но у нас есть скидки для небольших независимых поставщиков ПО и бесплатные лицензии для проектов с открытым исходным кодом. Он используется MySQL / Oracle, Jaspersoft, Alfresco, Pentaho и множеством других независимых поставщиков ПО с инструментами на основе Java, и эти приложения были загружены буквально миллионы раз без каких-либо серьезных проблем. Попробуйте:)

1 голос
/ 22 февраля 2011

В общем, у вас есть несколько вариантов:

1) Java Web Start
2) Run it as an applet
3) download and install.

В первую очередь вас интересует вариант 3. У вас есть множество инсталляторов (InstallJammer один, но у вас есть другие), которые вы можете создать установкупакеты для.Поскольку вы смотрите на распространение JVM (что вы можете сделать), то вы смотрите на разные инсталляторы для каждой платформы, на которую вы нацелены.

0 голосов
/ 22 февраля 2011

Для простых продуктов мне нравится получать один исполняемый файл jar.См. http://one -jar.sourceforge.net /

Для любых крупных продуктов и установщика потребуется.(InstallAnywhere, Install4J, LzPack и т. Д. Помогут вам создать его)

...