2010-04-26 3 views
9

Эти прекрасные люди мои пользователи: http://www.youtube.com/watch?v=o4MwTvtyrUQЕсть ли механизм для распространения приложения со своей собственной JRE?

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

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

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

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

Любая информация оценена значительно. Спасибо! jb

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

+1

Подождите ... вы хотите установить веб-приложение и сервер на машину пользователя? И вы ожидаете, что эти компьютерные неграмотные люди запустили свой браузер и набрали «http: // localhost: 8080/webapp», чтобы попасть в ваше приложение? Помните, что они не знают разницы между веб-сайтом и браузером ... не говоря уже о том, чтобы иметь дело с такими файлами, как брандмауэр Windows и UAC, чтобы они не запускали сервер? – Nate

ответ

4
 
    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

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

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

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

+0

@mdma: Думаю, я должен был прочитать это README раньше. Спасибо за ответ. Локально установленное решение связано с тем, что я хочу, чтобы они сохраняли свои данные на своих компьютерах (напротив «облака»). Поскольку я пишу в основном код сервера, мне никогда не приходилось беспокоиться о распространении платформы. Это грязно. Хотелось бы что-то вроде web2py (python) для Java. Еще раз спасибо. - jb – user179997

6

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

+0

+1 Для install4j. – lexicore

+0

@Alinium: К сожалению, я не могу предположить, что моему пользователю разрешено устанавливать что-либо, поэтому я ищу «рассылку и запуск» вида распространения. – user179997

1

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

1

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

Сделать самостоятельно исполняемый файл фляги вашего приложения.

  • Предоставьте пользователям небольшую настройку JRE (appx 15MB for jre6u7) вместе с вашим приложением.
  • Теперь создайте командный файл (для окон), который сначала выполнит установщик 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 тоже.

 Смежные вопросы

  • Нет связанных вопросов^_^