Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Можно использовать Firefox или XULRunner с некоторым довольно простым XUL для создания миниатюр как PNG dataURLs (что Вы могли затем записать в файл в случае необходимости). У Robert O'Callahan есть некоторая превосходная информация о нем здесь:
http://weblogs.mozillazine.org/roc/archives/2005/05/rendering_web_p.html
Я знаю, что Вы сказали, что хотите, чтобы сервис был локален, но... если Вы должны быть подключены к Интернету, чтобы сделать снимок экрана, у Вас должен одинаково быть доступ к веб-сервису. На лучшее перемещение походит делать это, чем открыть себя до межплатформенных проблем делания снимков экрана локально.
Существует много коммерческих пакетов, которые сделают то, что Вы хотите. Я не уверен от чтения Вашего вопроса, если свободный требование. Но вот некоторые приложения, я нашел, что по умеренной цене и которые делают точно, что Вы хотите. Я не использовал их сам, но у них есть загрузки бесплатной демонстрационной версии, таким образом, можно оценить перед покупкой.