Как распространять приложение Java

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

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

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

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

кроме того, стоит спросить, как обрабатывать кросс-платформенный дистрибутив, exe против dmg и т. д...

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

спасибо

4 ответов


распространять исходный код и пусть пользователи компилируют его сами, или обеспечьте сделайте архивы, etc..

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

упакуйте его в банку

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

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

как о создание исполняемого файла jar вместо?

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

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

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

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

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


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


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

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

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


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

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