Возможно ли создать настольное приложение с помощью интерфейса Java backend & Web Technologies - PullRequest
8 голосов
/ 04 августа 2010

Я бы хотел создать настольное приложение на Java и веб-технологиях.Основная причина выбора Java заключается в том, что он бесплатный, с открытым исходным кодом, и, следовательно, наши инвестиции будут минимальными, и мы сэкономим много инвестиций в отношении затрат на лицензирование и т. Д. Кроме того, основная причина выбора веб-технологий заключается в том, что наши текущиепрограммисты хорошо разбираются в таких веб-технологиях, как HTM1, CSS, Ajax, и у нас есть хороший опыт создания удивительного пользовательского интерфейса в веб-технологиях.

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

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

Iслышал, что реализация отличного графического интерфейса возможна, но сложна в Java.Это можно сделать, но это сложно, тогда как в Visual Studio и продуктах Microsoft это сделать довольно просто.

Я также проверил Adobe Air, Nokia QT и т. Д., Но все они довольно дороги для нас имы ищем интерфейсный интерфейс браузера и встроенный сервер / базу данных сервера с использованием технологий Java.

Возможно ли создать настольное программное обеспечение, в котором пользовательский интерфейс создается с использованием веб-технологий, и имеется встроенный сервер (как jetty или tomcat), а база данных и бэкэнд-программирование были бы на Java.Как JavaFX вписывается в это?

Таким образом, в основном, настольное приложение будет иметь встроенный браузер (Mozilla или какой-нибудь Java-браузер, который может поставляться вместе с программным обеспечением), но конечный пользователь никогда не должен этого понимать.

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

Я изучал некоторые программные продукты, такие как PulpTunes & Zimbra, которые были в том же духе, но, похоже, они подключаются к Интернету для отображенияданные.Наше программное обеспечение будет полностью автономным настольным приложением.

Ответы [ 7 ]

2 голосов
/ 04 августа 2010

Прежде всего, это возможно.Если вы ищете, например, отметьте http://wiki.eclipse.org/Hudson-ci/Meet_Hudson. Вы можете получить базовую архитектуру, если копаться в их коде.Он не использует встроенные БД.Вы говорите, что ваше приложение всегда будет в автономном режиме, в этом случае я предлагаю вам перейти на чисто настольное приложение с использованием таких технологий, как разработка плагинов Eclipse.

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

  1. Хотя ваше приложение не в сети (полагаю,ваше приложение не должно подключаться к какому-либо серверу для любого случая использования, но пользовательский компьютер может получить доступ к Интернету, вам необходимо доставлять изменения (например, изменения в html или jsp-странице) / исправлять ошибки для конечного пользователя.JNLP / Java Web Start хорошо подходит для этого.

  2. Если вы собираетесь установить JNLP, вы должны позаботиться об установке встроенных БД и портах на компьютере конечного пользователя.(это большая проблема, чем кажется).

  3. Также, если вы запускаете сервер (в моем случае, Jetty) через JNLP, вы столкнетесь с ошибками загрузки классов из-за проблем с разрешениями.Будьте готовы копаться в коде сервера.Я сделал это давным-давно, и у меня нет кода, чтобы указать точные проблемы.

  4. Показывать индикаторы выполнения во время процесса установки и при запуске вашего приложения.Развертывание войны занимает некоторое время, и пользователю необходимо знать, что приложение запускается.В конечном итоге вы напишете некоторый пользовательский интерфейс Swing.

  5. Автоматический запуск URL-адреса приложения в браузере системы пользователя по умолчанию после запуска приложения.Вам не нужен встроенный браузер. Проверьте http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/.

  6. Я использовал MySql в качестве встроенной базы данных.Отметьте Встраивание mysql в настольное приложение java .У меня это сработало, проблем не возникало.
1 голос
/ 21 ноября 2017

Да, это возможно.Смотрите https://github.com/jreznot/electron-java-app демо.Там вы найдете простой способ создания приложения на базе Electron на Java без компиляции в JS, просто приложение Java внутри встроенного экземпляра Jetty с пользовательским интерфейсом Vaadin.

0 голосов
/ 01 ноября 2013

Мы собираемся сделать очень похожую вещь. У нас есть существующее веб-приложение на Java. Мы протестировали запуск этого на настольной системе, установленной с Jetty и MySql. Браузер Chrome в режиме «приложение» выглядит как настольное приложение.

Мы рассматриваем этот подход как способ реализации кроссплатформенной (pc / mac / linux) автономной версии нашего существующего зрелого онлайн-веб-приложения. Я хотел бы услышать, если кто-нибудь знает о подобных проектах или может проколоть какую-либо дыру в идее запуска сервера приложений для настольного приложения. Наша цель, разумеется, состоит в том, чтобы иметь по существу одну кодовую базу для серверной и настольной реализации с защищенными вариантами, где это необходимо.

0 голосов
/ 04 августа 2010

Я, вероятно, за это буду побежден, но для этого я предлагаю JavaFX.Мы успешно внедрили JavaFX-приложение для внутреннего использования в более крупной компании.Преимущества в том, что программное обеспечение «контролируется» на стороне сервера (таким образом, ни у кого не будет «старой» версии).Установка минимальна (Java Web Start исправляет это для вас, она даже запускает минимальную JRE-установку, если она не существует) и, наконец, что не менее важно, JavaFX может быть запущен в браузере и как чисто настольное приложение без необходимости изменениякод.

Adobe FLEX является еще одним претендентом, но ему не хватает бита "Web Start" и он не настолько гибок, когда речь идет о простой миграции между браузером и рабочим столом.

В любом случае, JavaFXне совсем полнофункциональный, как FLEX, но версия 1.3 может считаться готовой к бою, и вы можете создавать аккуратные вещи с помощью бесплатных плагинов JavaFX для Adobe Creative Suite (если ваше приложение будет содержать любую графику, то есть).

0 голосов
/ 04 августа 2010

Я не получил встроенную часть причала / кота.Вы хотите, чтобы приложение для настольных компьютеров запускало встроенный сервер, который взаимодействует с базой данных?Таким образом, каждое настольное приложение будет открывать соединение с БД?

Почему бы не иметь настольное приложение Java, которое отправляет HTTP-запросы на сервер JavaEE, который подключается к БД и обрабатывает запросы?Так что, по сути, клиент Java (который может быть настолько богат, насколько это могут сделать ваши разработчики) заменяет браузер.Это дает вам гораздо большую масштабируемость и т. Д.

У нас есть аналогичный (хотя и более сложный) продукт, разработанный с использованием - Swing + Apache Commons HttpClient на рабочем столе.Это делает HTTP-запрос POST с сериализованными двоичными данными на сервер.- Сервлет-диспетчер, работающий в веб-контейнере, который воссоздает Java-объект на сервере и выполняет запрос.

0 голосов
/ 04 августа 2010

ИМХО вся идея запуска веб-сервера просто для создания настольного приложения с js и ajax и прочим ужасна ... Я слышал о Apple-создателе Titanium , который позволяет создавать кроссплатформенные приложенияиспользуя веб-методы.Также есть пара других подобных программ.

Я думаю, что в конечном итоге вам лучше купить хороший инструмент для разработки Swing для Java-интерфейса, который обойдется вам в пару сотен долларов, но избавит вас от множества проблем при разработке.Очень трудно поверить, что выложить хорошее настольное приложение сложнее, чем выложить веб-страницу.

0 голосов
/ 04 августа 2010

Вы действительно правы, java - это здорово, если вы разрабатываете проект самостоятельно.

Кодирование на стороне сервера может быть выполнено с использованием Spring (для MVC, базы данных и т. Д.). Очень богатая и легковесная структура, простая в освоении и понимании) с гибернацией (ORM-структура для обработки базы данных, обеспечивает диалекты для любого сервера базы данных.).

Для пользовательского интерфейса вы можете использовать Spring MVC ИЛИ JSF ИЛИ GWT ИЛИ javaFX.JavaFX обеспечивает загрузку JNLP, которая работает на Java и без браузера.проверьте ссылку для большего количества примеров JavaFX.http://javafx.com/samples/

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

Для Ajax у вас будут библиотеки, поддерживающие easy ajax.например DWR (Easy Ajax, JS to JAVA) и многие другие библиотеки JS, такие как yahoo, jQuery и т. д. могут быть использованы.

надеюсь, это поможет.

...