Archive

Posts Tagged ‘Development’

Внезапное закрытие Java-приложения: как избежать?

Июнь 26th, 2011

Источник

Во многих случаях, у программистов возникает необходимость выполнить некоторые действия в момент, когда пользователь заканчивает работу с приложением. Но проблема состоит в том, что пользователи не всегда пользуются рекомендованными и правильными способами выхода из приложения. Java предоставляет элегантный подход к выполнению какого-либо кода в середине процесса выгрузки процесса вашего приложения, таким образом гарантируя, что этот код, который, например, занимается какими-либо “очистительными” операциями, будет обязательно выполнен. Эта статья рассказывает о том, каким образом можно вешать обработчик прерывания работы приложения для гарантированного выполнения завершающего кода, независимо от того, каким образом пользователь завершил работу с вашим приложением.

Очень часто бывает нужно выполнять какие-то операции по завершению приложения. Например, когда вы пишите текстовый редактор с использованием Swing, и это ваше приложение создает временный файл при начале своей работы. Временный файл должен быть удален, как только пользователь закроет ваше приложение. Если же вы пишите приложение, состоящее из множества сервлетов, встраиваемых в сервлет-контейнер (например, Tomcat или Jetty), то вы должны вызывать метод destroy для каждого из загруженных вами сервлетов до того, как завершится работа приложения.

Во многих случаях, вы надеетесь на то, что пользователь закроет приложение “нормальным” для вас способом. Например, в первом случае вы можете предоставить ему компонент JButton, после клика на который выполняются необходимые завершающие операции и осуществляется непосредственно выход из приложения. Как альтернативный вариант вы можете повесить обработчик события окна, который бы обрабатывал событие windowClosing. Tomcat же использует специальный batch-файл, который может быть выполнен при правильном завершении работы с приложением. Однако, хорошо известно, что пользователи далеко не так часто корректно завершают работу с приложениями. Они могут делать с приложениями все, что пожелают. Помимо этого пользователь может просто-напросто закрыть консоль или завершить свой сеанс работы с операционной системой, оставив при этом ваше приложение незакрытым.

Read more...

, , , , , , ,

Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

Апрель 24th, 2011

Источник

Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места.

Read more...

, , ,

Infinite scroll : Loading content while scrolling, using Java and JQuery

Март 6th, 2011

Source

Have you seen the infinite scrolling of content in some web pages? For example, in DZone.com when you scroll the page to the bottom, new links will be loaded automatically and it’ll give you the illusion that the page scrolls infinitely. Another good example is that Bing’s Image Search.

The technique is not hard to implement. With the use of a single servlet and JSP, we can implement a basic functionality with infinite scroll. Before dive into code details, have a look at this demo to get a feel of it: Infinite Scroll Demo

To implement this, we need a servlet which will serve the dynamic content and a JSP file which will have the UI and act as a client to receive the content. Below are the code for these two files. I’m leaving other common stuffs (like web.xml entry etc) to you.

Read more...

, , , , , , ,

A gentle introduction to SWT and JFace, Part 2: How to use combo, list, table, and tree controls

Февраль 5th, 2011

Source

Programmers use the Standard Widget Toolkit (SWT) and JFace libraries to develop graphical user interfaces (GUIs) for the Eclipse environment, and to develop stand-alone GUI native applications.

In the first installment of this series, "How to create a simple SWT application," I introduced you to Eclipse, the Eclipse SWT, and the JFace GUI tool kits to construct Eclipse and stand-alone rich GUIs. I also introduced the basic label, text, and button GUI controls, and the composite, group, and shell container types. Finally, I showed you how to combine these controls into a simple working application.

Here, you will learn how to add menus to your application, use some list input controls, and use the more advanced table and tree container controls. I also will demonstrate some best practices by employing service methods to easily build GUIs. Finally, I will show you how to extract reusable function into a base application class.

Except where noted, all the widgets and controls discussed are in the org.eclipse.swt.widgets package.

Read more...

, , , , ,

JavaMail API – Sending email via Gmail SMTP example

Январь 9th, 2011

Here’s two examples to show how to use JavaMail API method to send an email via Gmail SMTP server using both TLS and SSL connection.

GMail SMTP details

http://mail.google.com/support/bin/answer.py?hl=en&answer=13287

Outgoing Mail (SMTP) Server
requires TLS or SSL: smtp.gmail.com (use authentication)
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465

Read more...

, , , , , , , ,