🎓

MacのIntelliJ上でProcessingを動かす

2024/04/18に公開

始めに

私は電気通信大学の夜間(通称K課程)に通っているのですが、2年目のプログラミングの講義でProcessingというグラフィック描画に特化した言語を扱うことになりました。

Processing画面

普段はIntelliJを使って開発をしているので、こういった素のメモ帳のようなもので開発するのが非常に苦痛で(Vimキーバインド使えないと生産性激落ち)、何とかIDEで開発しようとIntelliJにProcessingを導入したのでその手順を今回残すことにします。

なお、検索してみるとIntelliJ IDEAでProcessingを書く #Java - Qiitaという記事が見つかるのですが、この設定ではMacは以下のようなエラーメッセージが出てうまく起動しないので、同様に困っている人の参考になれば幸いです。

java.lang.NoClassDefFoundError: com/apple/eawt/QuitHandler
 at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
 at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
 at java.base/java.lang.Class.getMethodsRecursive(Class.java:3543)
 at java.base/java.lang.Class.getMethod0(Class.java:3529)
 at java.base/java.lang.Class.getMethod(Class.java:2225)
 at processing.core.PApplet.runSketch(PApplet.java:10707)
 at processing.core.PApplet.main(PApplet.java:10504)
 at processing.core.PApplet.main(PApplet.java:10486)
 at lesson2.polygon.main(polygon.java:8)
Caused by: java.lang.ClassNotFoundException: com.apple.eawt.QuitHandler
 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
 at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)

前提

手順はMacを前提として記載しています。Windowsの方はフォルダー構成が違うのでうまく読み取ってください。たぶんフォルダー指定部分をちょっと変えればいけるはずです(もしくは上のQiitaのリンクで解決するかも)。

VS Codeでも同じような設定をすれば良いはずですが、せっかく学生は無料でIntelliJが使えるので、一度有料のIDEの便利さを味わうとよいでしょう(布教)。

手順

新規プロジェクトの作成

まずは新規プロジェクトを作成してください。

プロジェクトはJavaで、JDK 17以降を指定してください。

プロジェクト作成

ここはJavaを個別にインストールしていなければ、おそらく16になっています。デフォルトの16のままだと以下のようにJavaが古いというエラーがでます(後から変えたい場合は、ファイル→プロジェクト構造から変更可能です)。16以外に選択肢がない場合は、別途OpenJDKなどをインストールしましょう。

エラー: メイン・クラスlesson2.polygonのロード中にLinkageErrorが発生しました
 java.lang.UnsupportedClassVersionError: processing/core/PApplet has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0

モジュールを追加する

ではプロジェクトでProcessingが動くよう、Processingのモジュールを追加していきます。

プロジェクト構造画面

まずはファイルプロジェクト構造を選んでください。

プロジェクト構造を選択

JARを追加する

ここから以下の画像のようにJAR またはディレクトリを選んでください。

プロジェクト構造画面

JARまたはプロジェクトを選択

するとFinderが表示されるので、「Application」→「Processing」→「Cotents」→「Java」の順番に指定して表示される「core.jar」を選択してください。

core.jarを選択

うまくいけば以下のようにcore.jarが表示されているはずです。これで準備完了です。

core.jarの追加

ソースコードを書く

では具体的にProcessingのソースコードを書いていきましょう。
以下の画像の通り、srcフォルダー配下に「test」というJavaプログラムを追加します。

testコードを追加する

追加されたら以下のコードを貼り付けてください。

import processing.core.PApplet;

// test の部分はファイル名と同じにする
public class test extends PApplet {

  public static void main(String args[]) {
    // ここの名前もファイル名と同じにする
    PApplet.main("test");
  }

  public void settings(){
    // sizeメソッドだけはここに指定する
    size(640,480);
  }
  public void setup(){
  }
  public void draw(){
    // ここに実際のProcessingのコードを記載していく
    background(255);
    quad(400,100,300,200,600,200,550,50);
    triangle(250,250,200,450,600,450);
  }
}

プログラムを実行する

「実行」→「実行」選ぶと選択肢がでるので、そこからtestを選んでください。

実行

正常にセットアップできていれば、以下のように画像が出力されるはずです。Good!

結果

おわり

これでIDEの補完機能などが使えるようになるので、かなり快適に作業ができますね。
講義では作ったコードを提出することになるので、settings部分に指定した「size(640,480)」の部分と、drawメソッドの部分をコピーし、実際のProcessingの画面で動作確認をしましょう。

    size(640,480);
    background(255);
    quad(400,100,300,200,600,200,550,50);
    triangle(250,250,200,450,600,450);

VS CodeやIntelliJのようなIDE(統合開発環境)は実務では必須でしょう。とくにGitHub Copilotを使った開発体験は後戻りできないくらい快適ですので、時間を捻出するのがたいへんな夜間生はこういったツールを使いこなして効率よく作業するのは大事だと思っています。

では良き開発ライフを!

GitHubで編集を提案

Discussion