gpt4 book ai didi

使用 lein uberjar 构建的 Clojure 应用无法启动

转载 作者:行者123 更新时间:2023-12-02 02:04:54 24 4
gpt4 key购买 nike

我有一个使用“lein uberjar”构建的小型命令行 Clojure 应用程序。结果 jar 文件在启动时不会调用我的主函数,也不会给我任何类型的堆栈跟踪或其他错误情况指示。

% lein version
Leiningen 2.0.0 on Java 1.7.0_10 Java HotSpot(TM) 64-Bit Server VM
% lein uberjar
Compiling spelunker.core
Compiling spelunker.core
Created /Users/temerson/Work/ddp-qa-tool/spelunker/target/spelunker-0.1.0-SNAPSHOT.jar
Including spelunker-0.1.0-SNAPSHOT.jar
Including lucene-core-3.6.2.jar
Including clojure-1.4.0.jar
Created /Users/temerson/Work/ddp-qa-tool/spelunker/target/spelunker-0.1.0-SNAPSHOT-standalone.jar

% java -jar target/spelunker-0.1.0-SNAPSHOT-standalone.jar
%

它应该显示一条用法消息,而不是什么都不显示。我已经检查了(对我来说)显而易见的事情:我的项目文件包含

(defproject spelunker "0.1.0-SNAPSHOT"
:description "Spelunk through Lucene data to find nuggets of useful data."
:dependencies [[org.clojure/clojure "1.4.0"]
[org.apache.lucene/lucene-core "3.6.2"]]
:main spelunker.core
:aot [spelunker.core])

和 spelunker/core.clj 包括

(ns spelunker.core
(:import (org.apache.lucene.analysis.standard StandardAnalyzer)
(org.apache.lucene.document Document Field Field$Store Field$Index)
(org.apache.lucene.index IndexReader IndexWriter IndexWriter$MaxFieldLength)
(org.apache.lucene.store NIOFSDirectory RAMDirectory)
(org.apache.lucene.util Version))
(:gen-class))

并且 main 函数是这样定义的(现在):

(defn -main [& args]
(print "DAFUQ?"))

出于所有意图和目的,这应该有效:如果我使用 leiningen app new 创建一个 stub 应用程序,它可以正常工作。但不是上面的。

如果我至少得到某种堆栈跟踪(即,我可以调查的东西),我会感觉很好,但沉默让我很痛苦。

有人有什么想法吗?

非常感谢。

最佳答案

您在退出前没有冲洗。在 -main 中将 print 更改为 println ,换行符将自动刷新,或者以其他方式在您的打印后进行显式刷新。

关于使用 lein uberjar 构建的 Clojure 应用无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15506961/

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