Разрабатывайте приложения для настольных ПК с помощью HTML, как веб-приложение

Я привык разрабатывать веб-приложения на Java (Struts, Spring, JSP ...). Но теперь я хочу разработать настольную. Мне никогда не нравилось создавать окна на Java (AWT, Swing, SWT): слишком много работы для уродливого интерфейса. Так что я думаю, что было бы неплохо, если бы я мог воспользоваться своими навыками работы с веб-приложениями. Один из вариантов - изменить SWT-браузер и выполнять вызовы функции Java вместо HTTP-запросов. Очень хорошим дополнением было бы использование JSP. Наконец, я подумал, что, вероятно, для этого есть какая-то структура или инструмент.

Как вы думаете, то, что я предлагаю, - хорошая идея? Есть ли для этого какие-то рамки?

Мне это нужно для легких приложений. Поэтому я считаю, что встраивание сервера Tomcat и использование его с HTTP-запросами - не лучшая идея.

Изменить: одним из примеров приложения может быть средство сравнения папок: вы указываете две папки, и приложение показывает, какие папки и файлы отличаются. В этом случае я считаю, что открывать внешний браузер некрасиво. Раздутое приложение (с его сервером, MVC и т. Д.) - не лучший выбор.


person sinuhepop    schedule 16.09.2009    source источник
comment
Пожалуйста, используйте что-нибудь вроде Adobe AIR. Очень хорошо. Очень просто. У нас был очень хороший успех.   -  person Alec Smart    schedule 16.09.2009
comment
Вам также может понравиться Titanium. Они также позволяют запускать Ruby и Python.   -  person Alec Smart    schedule 16.09.2009
comment
Спасибо за ответы. AFAIK, AIR и Titanium не предназначены для разработки на Java, поэтому мой код не будет закрытой платформой. Кроме того, у вас нет исполняемого файла, вы должны установить его пусковые установки. Пожалуйста, поправьте меня, если я ошибаюсь.   -  person sinuhepop    schedule 16.09.2009
comment
Вы можете использовать приложения Adobe AIR на всех платформах. Не уверен насчет Титана.   -  person Alec Smart    schedule 17.09.2009


Ответы (4)


Я бы не стал отказываться от встраивания веб-сервера. Я уже делал это раньше, используя приложение для запуска веб-сайтов, в которое встроено Jetty.

Загрузка была довольно быстрой, сервер запускается, и вы можете использовать BrowserLauncher, чтобы немедленно переключить свой браузер на встроенный server, а значит, и ваше приложение. Jetty спроектирована как модульная и имеет небольшую площадь, поэтому вы, вероятно, сможете сократить ее до самого необходимого.

person Brian Agnew    schedule 16.09.2009
comment
Не исключено встраивание легкого сервера в качестве Jetty. Может быть, я не найду чего-то подобного, о чем я просил. Спасибо. - person sinuhepop; 16.09.2009

Если вы использовали библиотеку JavaScript - ExtJs - вы можете использовать ее с Adobe AIR для создания красивого настольного веб-приложения.

Создание приложений в Adobe AIR также просто и элегантно с помощью Flex Builder ide.

person techzen    schedule 16.09.2009
comment
Я люблю ExtJS;) Как отмечалось ранее, проблема в том, что AIR не предназначен для программирования на Java, и вы не получите исполняемый файл: пользователь должен установить AIR. Поправьте меня, если я ошибаюсь, пожалуйста. И спасибо! - person sinuhepop; 16.09.2009
comment
Вы должны попробовать с ним Aptana. У них есть отличный набор примеров, которые помогут вам начать работу. - person Alec Smart; 17.09.2009
comment
Вы можете использовать merapi API (код на java), а затем интерфейс с AIR. Объедините приложение и установщик в один набор. - person techzen; 17.09.2009

Если вы предпочитаете встроить легкий сервер, проверьте, что winstone не полностью совместим с J2EE, но этого должно быть достаточно. для того, что вам нужно. Что касается браузера, я сам не большой поклонник swt, он сильно усложняет кроссплатформенное развертывание, поэтому, вероятно, стоит обратить внимание на jwebpane, еще не совсем готов, но, вероятно, решение, которое вам понадобится.

person pedromarce    schedule 19.10.2009

Есть несколько вариантов: вы можете использовать API плагина Firefox и разработать там свое приложение. Вы можете использовать HTML, JavaScript, встроенную базу данных, все функции браузера и получить доступ к уровню ОС.

Или вы можете попробовать PyQt (Python и Qt), который позволяет писать простые приложения. очень быстро.

[EDIT] Основная проблема, с которой вы столкнулись, - это безопасность: по соображениям безопасности приложения JavaScript (работающие на HTML-странице) не могут получить доступ к локальным ресурсам ОС. Поэтому, если ваш браузер не позволяет вам писать плагины на JavaScript (что верно только для FF AFAIK), невозможно написать приложение, которое использует HTML в качестве «представления» без помощи чего-то еще.

Более того, HTML очень ограничен, когда дело касается функций для приложений. HTML разработан, чтобы быть «статическим представлением документа», а не «приложением». Вы можете делать такие вещи, как GMail, но если вы сравните GMail с любым настоящим почтовым приложением (Outlook, Thunderbird, Notes), вы быстро увидите, что настоящие настольные приложения предлагают гораздо больше возможностей.

person Aaron Digulla    schedule 16.09.2009
comment
Спасибо за ответ, но я думаю, что это не совсем то, что я ищу. Я хочу создать независимое приложение, и мне не нужно было бы устанавливать Firefox или какое-либо другое приложение (кроме Java). PyQt может быть хорошим способом создания настольных приложений, но Python - это не Java, а Qt - не HTML. На самом деле Qt больше похож на Swing и т. Д. Приветствую. - person sinuhepop; 16.09.2009
comment
Смотрите мои правки: то, что вы хотите, вероятно, невозможно, если вы настаиваете на всех своих пунктах. - person Aaron Digulla; 17.09.2009