«Лейна Бар» и «Лейна Убежар» не устанавливает правильно на главном классе

StackOverflow https://stackoverflow.com/questions/3677372

  •  01-10-2019
  •  | 
  •  

Вопрос

Я побежал lein uberjar На моем проекте и создал соответствующие файлы JAR. Когда я бегу в банку ClassNotFoundException: explodingdots.core брошен. Я указал explodingdot.core как мой главный класс. Я извлек файл JAR и не было core.class в соответствующем каталоге. Что я забыл?

У меня есть следующий код в src/explodingdots/core.clj

(NS ExploDingdots.core (: Import (java.awt цветной размер графики2d alphaacomposite renderinghints) (java.awt.event eactionlistener mouseadapter windadapter) (timer jpanel jpax.swing jpanel jframe)) (:: Defn -init [] взрывающиеся точки) (defn -main [_] (пусть ed (new inshodingdots.core)] (.init ed))))))

Содержание моего project.clj является:

(DefProject Exprodingdots "0.1": Зависимости [[org.clojure / clojure "1.2.0"] [ORG.CLOJURE / CLOJURE-INVENTIGNAGE "1.2.0"]]: основные взрывыdots.Core)

Примечание: Я использую Leinhen 1.3.1

Это было полезно?

Решение

Хорошо, я решил свою первоначальную проблему. Это своего рода помараживание, чтобы признать его, но я думаю, что должен сделать это ради полноты этой темы. Я перепутал своими путями. У меня один и тот же файл в проекте NetBeans и в проекте Лейнингена. И я редактировал файл NetBeans. Извиняюсь.

Но тогда у меня была другая проблема. Основной метод найден, но я получаю

java.lang.illegalargumentException: неправильное количество args (0) передано: CORE $ -Main

Я пытался изменить свой основной метод от(defn -main [_] ...) к (defn -main [& args] ...) Как предложил Артур, но это не сработало. Решить это, я написал только (defn -main[]...) без args.

Следующая проблема заключалась в том, что звонит (init) от (main) привело к ошибке. Я работал вокруг этого, не звонив (init) вообще, кроме звонка (exploding-dots) непосредственно от (main).

Так что заставить все работать мой src/explodingdots/core.clj выглядит как

(NS ExploDingdots.core (: Import (java.awt цветной размер графики2d alphaacomposite renderinghints) (java.awt.event eactionlistener mouseadapter windadapter) (timer jpanel jpax.swing jpanel jframe)) (:: Defn -main [] (взрывающие точки))

Глядя на решение, я должен думать, почему я не пишу это прямо вперед. Это самый простой и самый прямой путь. Может быть, мне нужен отдых;).

Другие советы

Мне пришлось добавить третий компонент к моему главному пространству имени и переместить все в подкаталог COM под SRC.

com.explodingdots.core

Я также объявляю Главным вектором Arg Arg, не уверен, что это делает различий:

(declare main) 
(defn -main [& args]    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top