Есть ли механизм для распространения приложения с собственным JRE? - PullRequest
9 голосов
/ 26 апреля 2010

Эти замечательные люди мои пользователи: http://www.youtube.com/watch?v=o4MwTvtyrUQ

Если вы не хотите наслаждаться видео, вот суть: мои пользователи не могут различить файл и папку, между браузером и веб-сайтом.

Мне нужно создать веб-приложение на Java (Tomcat или Jetty) и развернуть его на всех своих компьютерах, в Windows и Mac.

Вопрос в том, существует ли механизм для распространения приложения с собственным JRE? (в мире Tcl есть старпаки и старкиты, в мире Python есть py2exe и другие, это идея). А также, это законно? Я знаю, что виртуальная машина с открытым исходным кодом, но я не очень разбираюсь в библиотеках, и я знаю о GNU Classpath, но я не знаю, есть ли там все пакеты.

Я не хочу зависеть от установленной JRE или от пользователя, имеющего достаточно привилегий для его установки. На Mac я не хочу зависеть от Apple (мне пришлось переключиться с Tiger на Snow Leopard только для того, чтобы иметь Java 1.6, я не могу поставить своих пользователей в такое положение)

Любая информация с благодарностью. Спасибо! ДБ

edit: Мне интересно, могу ли я просто вставить папку JRE в папку моего приложения. Это разрешено?

Ответы [ 4 ]

6 голосов
/ 27 апреля 2010

Мы используем Install4j на нашем рабочем месте. Он заботится об установке и при необходимости устанавливает JRE. Это не бесплатно, хотя. И, по крайней мере, версия, которую мы используем, не предоставляет пользователям Mac встроенную JRE. Но, насколько мне удалось узнать, это было связано с некоторыми ограничениями Apple. Маки поставляются с собственной JRE, и если у вашего пользователя есть Mac, можно с уверенностью предположить, что у него установлена ​​JRE. Хотя, если JRE является более старой версией, чем та, которая вам нравится, им придется использовать Обновление программного обеспечения, чтобы проверить, доступна ли более новая версия, и установить ее.

4 голосов
/ 27 апреля 2010
    To run your application, a user needs the J2SE Runtime Environment,
    which is freely available from Sun. Or, You can redistribute the 
    J2SE Runtime Environment for free with your application, according 
    to the terms of the Runtime Environment's license.

С http://java.sun.com/j2se/1.5.0/jre/README

Я не читал мелкий шрифт, кажется, что Sun собирается, чтобы люди распространяли JRE. Кроме того, существует много продуктов (например, install4j), которые позволяют легко распространять JRE, поэтому это кажется законным.

Что касается остального, вы можете также связать tomcat со встроенной службой, чтобы ваше приложение автоматически запускалось, и создать ярлык на рабочем столе для вашего локального веб-приложения, чтобы пользователи не могли набирать ht tp: // локальный: 8080 / веб-приложение. Существует множество установщиков FOSS (например, izpack), которые позволят вашим пользователям установить пакет и управлять созданием ярлыков на рабочем столе. Вы упомянули, что предпочитаете не использовать установщик, но даже распаковка является своего рода установкой - ваши пользователи должны выбрать каталог, к которому у них есть доступ для записи, и это не отличается от полноценного установщика.

Но, учитывая возможности ваших пользователей, является ли локально установленное решение наиболее подходящим для них? Онлайн-решение может предложить более простое развертывание (например, запуск через Java или даже в виде апплета).

1 голос
/ 12 апреля 2012

Или, короче говоря, вы можете попробовать это:

Создайте файл jar для вашего приложения.

  • Предоставьте своим пользователям небольшую настройку JRE (около 15 МБ для jre6u7) вместе с вашим приложением.
  • Теперь создайте командный файл (для Windows), который сначала запустит установщик JRE.
  • Затем выберите путь к папке 'bin' установленного JRE.
  • Теперь после этого напишите 'java -jar yourAppName.jar' в сценарии, чтобы запустить исполняемый файл jar.

Например: для win.bat напишите следующее:

jre-6u7-windows-i586-p  :: this will start the JRE installer
C:\Program Files\Java\jre1.6.0_07\bin\java -jar yourAppName.jar  :: this will start your app

Вы также можете создавать такие скрипты для Mac и Linux.

1 голос
/ 29 июля 2010

В OS X вы в значительной степени застряли с тем, что Apple предоставляет вам. На других платформах нет необходимости запускать установщик JRE (что вы правильно указали на то, что ваши пользователи могут этого не делать), просто объедините папку JRE вместе с вашим приложением. Это то, что делают многие из наших пользователей (у моей компании есть многоплатформенный установщик под названием InstallBuilder ), и таким образом мы упаковали множество веб-приложений на Java. Некоторые из них можно посмотреть по адресу BitNami (все они бесплатны)

...