Хорошо, я решил свою первоначальную проблему. Признаться в этом немного стыдно, но я думаю, что должен сделать это ради полноты этой темы. Я перепутал свои пути. У меня есть один и тот же файл в проекте Netbeans и в проекте leiningen. И я редактировал файл Netbeans. К сожалению.
Но тогда у меня была другая проблема. Основной метод найден, но я получаю
java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$-main
Я попытался изменить основной метод с
(defn -main [_] ...)
до (defn -main [& args] ...)
, как предположил Артур, но это не сработало. Чтобы решить эту проблему, я написал (defn -main[]...)
без аргументов.
Следующая проблема заключалась в том, что вызов (init)
из (main)
привел к ошибке. Я решил эту проблему, вообще не вызывая (init)
, а напрямую (exploding-dots)
из (main)
.
Так что, чтобы все работало, мой src/explodingdots/core.clj
выглядит как
(ns explodingdots.core
(:import (java.awt Color Dimension Graphics2D AlphaComposite RenderingHints)
(java.awt.event ActionListener MouseAdapter WindowAdapter)
(javax.swing Timer JPanel JFrame))
(:gen-class))
[ ... ]
(defn -main[] (exploding-dots))
Глядя на решение, я должен подумать, почему я не написал это прямо сейчас. Это самый простой и прямой путь. Может быть, мне нужен отпуск;).