Using batik-rasterizer.jar
from version 1.7 of batik, I was wondering how to call the jar correctly.
java -jar batik-rasterizer-1.7.jar -m image/png -q 0.8 $1
Which gave me:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/batik/i18n/LocalizableSupport
Therefore, I was looking for the correct MainClass
and ClassPath
to use. I'll post a script I came up with as an answer in a minute ...
This script gets all necessary jars from the maven repository into a classpath variable. Probably there is a better way e.g. repacking using maven ...
#!/bin/bash
#set -x
batikdir=$HOME/.m2/repository/org/apache/xmlgraphics/batik-rasterizer/1.7/
batik=batik-rasterizer-1.7.jar
main=org.apache.batik.apps.rasterizer.Main
jarlist=/tmp/jarlist$$.txt
cp=$batikdir/$batik
find $HOME/.m2/repository -type f -name *.jar > $jarlist
for j in batik-ext-1.7.jar batik-dom-1.7.jar batik-css-1.7.jar batik-svg-dom-1.7.jar batik-gvt-1.7.jar batik-parser-1.7.jar batik-script-1.7.jar batik-bridge-1.7.jar batik-anim-1.7.jar batik-transcoder-1.7.jar batik-awt-util-1.7.jar batik-codec-1.7.jar batik-util-1.7.jar batik-xml-1.7.jar xerces-2.5.0.jar xalan-2.6.0.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar fop-0.94.jar batik-js.jar
do
#echo $j
p=`grep $j $jarlist`
cp="$cp:$p"
done
#echo $cp
# http://tech.groups.yahoo.com/group/svg-developers/message/47939
java -cp $cp $main -scriptSecurityOff -m image/png -q 0.8 $1
rm -f $jarlist
to get the libraries i created a dummy maven project with the following pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
install maven 2 to use this pom file
run e.g. mvn dependency:go-offline to download all libraries
-->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.bitplan.svg</groupId>
<artifactId>com.bitplan.svg</artifactId>
<version>0.0.1</version>
<name>Dummy Project for SVG </name>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-rasterizer</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
<!-- configure jar plugin to build test-jar http://maven.apache.org/guides/mini/guide-attached-tests.html -->
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0</version>
</extension>
</extensions>
</build>
</project>