私の優しくない Processing コンパイラ
2010/06/23 20:11 - Processing
いろいろ Processig をいじっている最中のワタクシです。
"Generative Gestaltung" の公式サイトにアップされているコードを落として、コンパイルとしていたところ、あるコードで以下のようなコンパイルエラーが出ました。
Note that release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
結論から言うと、このエラーメッセージは大嘘です! 'libraries' とありますが、正しくは 'code' です。
これは、デフォルトでないライブラリが要求されているにもかかわらず、そのライブラリが見つからないときに出るメッセージとのこと。
FlashDevelop で例えれば、グローバルなのかローカルなのかはともかく、クラスパスがちゃんと通ってない状態ですね。
ソースコードを見ると、以下のような import 記述がありました。
「Built with Processing[Ver. 1.x対応版] -デザイン/アートのためのプログラミング入門」を読んでいたワタクシは、慌てず騒がず、ああなるほど、独自ライブラリが必要なのねと納得し、サンプルコードがアップされていたページの一番下にある当該ライブラリをダウンしたのです。
で、コンパイラの指示どおり、今コンパイルしている pde ファイルがあるフォルダに libraries というフォルダを作って、その中に generativedesign.jar をコピーして再びコンパイル。
しかし同じエラーメッセージが出てコンパイルされません。 Processing のデフォルトライブラリフォルダに当該ライブラリをコピーしたりとかいろいろ試したんですが、何をやってもダメ。
ググったところ、以下のエントリーで衝撃の事実を発見!
いや普通コンパイラメッセージに書いてあることが、事実と違うなんてありえないっしょ。 ケアレスミスとかそんなレベルじゃない間違いでしょーがコレは。
こちらの方は Processing Ver. 1.0.9 とのことですが、私の使っているバージョンは 1.1 です。最新版なのに……
で、N.Lab の方も疑問を呈していらっしゃいますが、私は FlashDevelop ではグローバルクラスパス使用派なんです。 必要クラスを各プロジェクトフォルダにコピーするという手法は採っておりません。 同じクラスファイルがあちこち分散するのは気持ち悪い。
そんなわけで、Processing も同じようにどっか1カ所にライブラリ配置してパス通す方法ないのかなぁー、とググったところ、以下のエントリーでそのやり方を教えていただきました。
私は二つある設置場所の後者の方で試したところ、無事ライブラリが使えるようになりました。
先賢の皆さんありがとう!
なおこちらでは、先ほどハマったコンパイルのエラーメッセージの解決法が推測されることが冒頭に書いてありますね。
なるほど、昔からの仕様なんですか 'code' フォルダというのは。
古くからの Processing 使いには自明なのかもしれないけど、新参はそんなの分からんて。
Processing が新規参入者にとても冷たいプログラムだということが、とてもよく分かったそんな昼下がり。
あー、どうでもいいことですが、今回のエントリーのタイトルの元ねたはコレですよ。 カラダにピースってヤツですね(ちょっと違う)。