im4java is (to my knowlegde) the second java interface to
ImageMagick. It is not meant as a replacement for JMagick, but as an
addition.
JMagick is a thin JNI layer above the ImageMagick C-API. im4java in
contrast just generates the commandline for the ImageMagick commands and
passes the generated line to the selected IM-command (using the
java.lang.ProcessBuilder.start()-method).
Disadvantages of the approach: your are limited to the
capabilities of the IM commands. With JMagick, you have access to
the low-level interface of IM and therefore you have a very
detailed control of the processing of images. And you have
better performance.
Advantages of im4java: the interface of the IM commandline is quite
stable, so your java program (and the im4java-library) will work
across many versions of IM. im4java also provides a better OO interface
(the "language" of the IM-commandline with it's postfix-operation
notation translates very easily into OO-notation). And most important:
you can use im4java everywhere JMagick can't be used because of the
JNI hazard (e.g. java application servers).