[Java] SVGの画像変換がうまくいかなかった話

Nプログラマです。

HugoやJekyllで静的サイトを作っているのですが、アイコン画像からファビコンやプロフィール用の画像を一括で生成したいと思うようになりました。

以前Jekyllのテーマでgulpを使ったプロジェクト内でsvgからアイコンを一括変換していたような気がしていたので、一括変換の部分をJavaでやってみようと思いました。

参考にしたのは、以下のこちらのサイト。

Apache batikによるSVG→PNG/JPEGへの変換方法 - 霧笛望のもったいない開発保管庫
動作確認OSは、Solaris 9である。概要 公式サイト 日本語版ドキュメント BatikはJava技術に基づく、SVGフォーマットのイメージを、表示する、生成する、変換する、あるいは操作するといった様々な目的で利用する、アプリケーションのためのツールキットである。 ここでは、SVGファイルからPNG/JPEGフ...

自分のjarファイルのクラスパスの設定が間違っているためか、うまくいきませんでした。

こんな感じのエラーが表示されてしまいます。

Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

あんまり良くわかっていない状態ですが、コンパイルするコマンドはこんな感じ。

javac -Xlint:deprecation -classpath ./libs/batik-all-1.11.jar:./libs/xml-apis-1.3.04.jar:./libs/xmlgraphics-commons-2.3.jar:./libs/w3c.jar Main.java

そしてjavaの実行はこう。

java -classpath ./libs/batik-all-1.11.jar:./libs/xml-apis-1.3.04.jar:./libs/xmlgraphics-commons-2.3.jar:./libs/w3c.jar  Main 3D.svg 3D.png 512 512

繰り返しますがライブラリのjarファイルの指定が間違っていて、Main.javaで実行する時にクラスが見つからないのだと思います。

今度はIDEを使って挑戦しようと思います。

とりあえずやったトコロまでのメモとします。

それでは、このへんで。
バイナリー!

タイトルとURLをコピーしました