gpt4 book ai didi

jar - 'lein jar' 和 'lein uberjar' 没有正确设置主类

转载 作者:行者123 更新时间:2023-12-05 00:06:08 25 4
gpt4 key购买 nike

我跑了lein uberjar在我的项目上,它创建了相应的 jar 文件。当我运行 jar ClassNotFoundException: explodingdots.core被抛出。我指定了 explodingdot.core作为我的主类。我解压了jar文件,确实没有core.class在相应的目录中。我忘记了什么?

我在 src/explodingdots/core.clj 中有以下代码

(ns explodingdots.core
(:import (java.awt Color Dimension Graphics2D AlphaComposite RenderingHints)
(java.awt.event ActionListener MouseAdapter WindowAdapter)
(javax.swing 定时器 JPanel JFrame))
(:gen-class))

[...]

(defn -init[] 爆炸点)
(定义 -main[_]
(让[ed(新的explodingdots.core)]
(.init ed)))

我的内容project.clj是:

(defproject explodingdots "0.1"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]]
:main explodingdots.core)

注:我正在使用 leiningen 1.3.1

最佳答案

好的,我解决了我原来的问题。承认这一点有点尴尬,但我认为为了这个线程的完整性,我必须这样做。我被我的道路搞混了。我在 Netbeans 项目和 leiningen 项目中有相同的文件。我正在编辑 Netbeans 文件。对不起。

但后来我遇到了另一个问题。找到了主要方法,但我得到了一个

java.lang.IllegalArgumentException:传递给的参数数量错误(0):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 定时器 JPanel JFrame))
(:gen-class))

[...]

(defn -main[] (爆炸点))

通过查看解决方案,我不得不思考,为什么我不提前写出来。这是最简单、最直接的方式。也许我需要休假;)。

关于jar - 'lein jar' 和 'lein uberjar' 没有正确设置主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com