🐈️

lein depsした後はCalvaを再起動しましょうって話

2024/12/30に公開

経緯

何度も同じ間違いをしては時間を無駄にしているので、備忘として記事にすることにした💢💢💢

症状

まず環境は以下のようになっている。

プロジェクト管理 leiningen
エディタ VSCode
拡張機能 Calva

さて、症状が起きたときの手順を示す。

まず、CalvaのREPLサーバが立ち上がっている状態で、project.cljにライブラリを追加する。

:dependencies [[org.clojure/clojure "1.11.1"]
                [net.java.dev.jna/jna "5.10.0"]] ;; <= これを追加している

もちろんこのあとlein depsでコマンドラインから依存関係の解決を行う。

lein deps

さて、この状態でcore.clj等で読み込もうとすると、importに失敗する。

(ns project1.core
  (:gen-class)
  (:import (com.sun.jna Native)))
;; ここのimportが失敗する。

;; 出力例
; Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (URLClassLoader.java:445).
; com.sun.jna.Native

解決法

解決策は簡単。
Calvaを再起動しよう。

そうすれば無事にimportできる。

あとがき

Calvaのことがまだ良くわかってないので、実はREPLサーバ立ち上がった状態でも読み込める方法があるのかもしれない。

そのあたりもいずれ調べて追記したい。

GitHubで編集を提案

Discussion