Processingで実行ボタンを押した時、どうやって書いたソースを実行しているのか、ソースを追ってみた。
- エディタの実行ボタンが押されると、JavaEditor#handleRunが呼び出される
- JavaMode#handleRunが呼び出される
- ビルド:JavaBuild#build
- スケッチ上のソースをJavaコードに変換する
- JavaBuild#preprocess
- PdePreprocessor#write これが実際にPDE上のソースをJavaコードに変換するメインルーチン
- Javaコードをコンパイルして、.class生成
- Compiler#compile : org.eclipse.jdtのBatchCompilerを使ってJavaコードをコンパイル
- スケッチ上のソースをJavaコードに変換する
- 生成された.classの実行
- Runner#launchVirtualMachine, Runner#launchJava
- PApplet#exec
- java.lang.Runtime#exec で実際に実行
- PApplet#exec
- Runner#launchVirtualMachine, Runner#launchJava
- ビルド:JavaBuild#build
ProcessingのソースはJavaとクリソツとはいえ、一回パースして抽象構文木を作ってなんやかや変換している(color
型をint
に置き換える、浮動小数点数リテラルをすべてfloat
にする、など)。