Как доставить Java-программу локально через браузер - PullRequest
2 голосов
/ 14 марта 2009

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

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

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

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

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

Есть ли у кого-нибудь мысли, предложения или ссылки на учебные пособия / веб-страницы, которые могли бы помочь мне решить, как лучше поступить в этом направлении.

Любые мысли очень ценятся ..

Ответы [ 9 ]

6 голосов
/ 14 марта 2009

Я знаю, что вы сказали, что не хотите возиться с вещами с графическим интерфейсом в java, но вы заглядывали в java web start? Это делает почти то, что вам нужно; пользователь щелкает ссылку через веб-браузер, и ваше приложение разворачивается на его компьютере, оно даже проверяет правильность использования JVM. Поскольку это полноценное приложение, а не апплет, ваше приложение не будет помещено в изолированную программную среду, и у вас не будет никаких ограничений доступа в вашей программе (кроме обычных java-компонентов ..), и, например, это будет легко сделать то, что вы упомянули и поговорить с БД MySQL. Единственным недостатком, о котором я упоминал ранее, является то, что вам придется создавать пользовательский интерфейс в Java.

Стартовая страница Википедии

Часто задаваемые вопросы о Sun при запуске через Интернет

2 голосов
/ 14 марта 2009

Grails может быть полезной отправной точкой. Он предоставит вам автономное решение для веб-сервера и будет следить за требованиями JDBC и возможностью CRUD (create-read-update-delete) через динамически генерируемые веб-страницы. Создание приложения, обеспечивающего взаимодействие вашей базы данных через веб-страницы, должно занять минимум усилий.

(фэй. Grails - это Java-эквивалент Rails )

2 голосов
/ 14 марта 2009

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

Если вы не хотите запускать автономный контейнер сервлета только для одного приложения, вы также можете встроить Jetty в работающее Java-приложение (см. Документацию здесь ).

В любом случае вы можете использовать существующие платформы Java EE (Spring JDBC, Hibernate, все эти веб-платформы) для абстрагирования от технических сложностей, хотя со встроенной Jetty вам, вероятно, потребуется написать какой-то уровень интеграции для веб-приложения. рамки на ваш выбор.

1 голос
/ 14 марта 2009

Я думаю, вы должны попробовать Restlet , облегченный фреймворк для отдыха. В этом руководстве показано, как запустить локальный веб-сервер и за несколько минут доставить «Hello World» через браузер (без шуток!), А также имеется множество расширений для любых нужд.

В сочетании с Java Web Start , с помощью которого вы можете развернуть и запустить приложение на локальном хосте, это должно быть то, что вам нужно.

0 голосов
/ 14 марта 2009

Если вам интересны некоторые эксперименты, например, новые вещи, и вы хотели бы повторно использовать множество Java-библиотек (включая JDBC), то вас может заинтересовать lift web framework , который Скала -О.

0 голосов
/ 14 марта 2009

Вы можете попробовать GWT + Google Gears

GWT - набор инструментов GUI, похожий на Swing для браузера. Google Gears - это база данных на стороне браузера. Ваше приложение полностью на Javascript в одном HTML-файле и совместимо с различными браузерами.

Приложение GWT может выполнять серверные вызовы, а Gears может синхронизироваться с базой данных сервера. Поэтому вам не нужно полностью ограничивать данные вашего приложения локальным рабочим столом.

0 голосов
/ 14 марта 2009

, как кто-то уже предложил, вы можете использовать в своем приложении встроенный Jetty-сервер и просто позволить своему пользователю запустить его с помощью своего рода сценария оболочки или пакетного сценария. Вам нужно только подать жалобу на каталог Layout с помощью веб-приложения Java, а вы - на него. то есть:

MyApplication
   app/
      WEB-INF/
         lib/
         classes/
         web.xml
   start.bat    |
   start.cmd     -  depends on your client OS
   start.sh     |

Тогда вам нужно только позаботиться о запуске Jetty при запуске. [Bat | cmd | sh] с вашим приложением в качестве контекста веб-приложения и готово!

0 голосов
/ 14 марта 2009

Если вы хотите сделать это как апплет, вы можете. Подпишите апплет и дайте ему разрешения для локальной сети (для подключения к серверу MYSQL таким образом) ... это должно быть возможно. Вот учебник по нему .

0 голосов
/ 14 марта 2009

Использование JDBC не означает, что вам нужно написать апплет, вы можете использовать JDBC в любом приложении: настольном приложении, веб-приложении, EJB, MDB и т. Д.

Вы хотите использовать браузер и Java на стороне сервера? Тогда сделайте это и используйте Servlets / JSP. Возможно, стоит использовать каркас представления ( Wicket , Struts2, Spring MVC, ...), Hibernate для доступа к данным и Spring для других объектов и проводки. Grails тоже хорошая идея.

Кстати, я не специалист по PHP, но PHP обладает объектно-ориентированными возможностями (представлен в PHP4, улучшен в PHP5), поэтому вы не пожертвуете всем, если выберете PHP.

Так что это действительно зависит от того, что вы хотите сделать. Если вы хотите написать какую-нибудь Java (веб-приложение или настольное приложение): выберите Java. Если вы хотите быстро разместить несколько веб-страниц и иметь сервер Apache, выберите PHP. Если вы ищете действительно высокую производительность, выберите RoR или Grails.

...