2015-12-19 5 views
3

Java 8/Groovy 2.4.3/2015 A.D. здесь. У меня есть необходимость написать Свинг приложение, которое будет устанавливаться на настольных/портативных компьютеров, и мне интересно, что современный свинг приложение DEV выглядит касаемо:Современные развертывания Swing и назначения JVM

  • монтажники & авто- выполняемых обновлений - То есть , коммунальные услуги (возможно, в том числе мастера) для правильно устанавливающего Свинг приложение (исполняемый JAR) на любом рабочем столе (Windows, Mac, Linux), а также обработку AutoUpdates, когда они доступны
  • Борьба родной JREs - Я хотел бы отправить JAR со своей собственной JVM (например, что делает Eclipse) и заставить JAR использовать эту JVM при запуске; что способ, которым я не пытаются конкурировать с тем, что JVM по умолчанию версия пользователь/OS уже установлена ​​на машине

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

Так я спрашиваю:

  • Любой конкретная (современная) метода, которые я могу использовать для развертывания/установки и автоматического обновления?
  • Какой трюк (и) используется Eclipse, чтобы заставить Eclipse использовать JVM, с которым он поставляется?
+1

Напишите программу обновления с помощью 'TimerTask', напишите установщик самостоятельно (вам не нужен он вообще -> Что бы вы сделали с ним? Пользователи Mac ненавидят установщиков). Аргумент командной строки для использования вашей собственной JRE. – Zizouz212

+0

Спасибо @ Zizouz212 (+1) - что касается 'TimerTask', как это может работать? Если 'TimerTask' является частью самого JAR (скажем,' myapp.jar'), как бы он обновил ... сам?!? Мне кажется, что мне нужно ** двух (2) ** исполняемых файлов: самого приложения (опять же, 'myapp.jar'), а затем' myapp-updater.jar', которое запускает этот «TimerTask» и обновляет основной JAR ... мысли? – smeeb

+0

Ну, решение об обновлении, как правило, лежит на пользователе, поэтому простого диалога со ссылкой на место загрузки, вероятно, будет достаточно (это, по крайней мере, начало). «TimerTask» может планировать события для вас (например, вызывать метод один раз в неделю). Этот метод может проверить, доступна ли более новая версия, и предупредить пользователя. – Zizouz212

ответ

1

В настоящее время мы использовали javafxpackager, который, несмотря на название, работает только «отлично» для приложений Swing. Его багги, ограниченный и нуждается в Mac для создания дистрибутива Mac и Windows-машины для сборки дистрибутива Windows, но он объединяет JRE, что-то.

Так как мы используем его в рабочем столе Codename One, он создает большую проблему, поскольку в облаке у нас есть компьютеры Mac, Windows и Linux.

Обратите внимание: это ничего не сделает для автоматического обновления, но поскольку современные приложения отправляются через магазины (как в Windows, так и в Mac), они заботятся об обновлении для вас.