You should take a look at CutyCapt:
CutyCapt is a small cross-platform command-line utility to capture WebKit's rendering of a web page into a variety of vector and bitmap formats, including SVG, PDF, PS, PNG, JPEG, TIFF, GIF, and BMP. See IECapt for a similar tool based on Internet Explorer.
Just execute the application from within your Java application. See Running Command Line in Java. The result would be something like::
p = Runtime.getRuntime().exec(String.format("./CutyCapt --url=%s --out=%s",
url, path));