ポクポク

ポクッとしてツナッ

Processingのスケッチのパスを取ってくる

Processing使ってお絵かきしたり顔認識したりARしたりの授業のTAをやってる。


Processingは要するにJavaなんだけど、プログラミング初学者向けにいろいろ隠匿してて簡単になってる。
たとえば、loadImage("hoge.png") とかするとスケッチ(プロジェクトみたいなもの)のdataディレクトリ以下のhoge.pngを読み込むことができる。
code以下のjarには勝手にクラスパスが通ったり、普通に書いてディレクトリそのままコピーして渡せばだいたい動く。


わりと歓迎できる仕様なんだけど、たまに絶対パスを要求するライブラリがあったりして、そういうのは初学者に面倒。
なにより採点する僕に異常に迷惑で、各々好き勝手絶対パスを書くのを全部修正して動かしていかなきゃならない。
かなりゲンナリして、なんとかならないかと思ってたけどなんとかなりました。


リファレンスマニュアルにはないけどこんなプロパティ、メソッドがあった。

sketchPath
スケッチのあるディレクトリへの絶対パス
sketchPath(arg)
sketchPath/[arg]への絶対パス
dataPath(arg)
sketchPath/data/[arg]への絶対パス


たぶんだけど、java.io.File.pathSeparatorみたいな感じのを見てて環境に依存しないと思う。
これを周知させて、使ってなかったら点を引くみたいなこと言えばいいと思う。