3

「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正常に機能します。しかし、上記ではありません。

少なくともなんらかのスタック トレース (つまり、調査できるもの) を取得できれば問題ないと思いますが、沈黙が私を殺しています。

誰にもアイデアはありますか?

どうもありがとう。

4

1 に答える 1

2

終了する前にフラッシュしませんでした。in に変更printすると、改行が自動的にフラッシュされるか、明示的なフラッシュで印刷に続きます。println-main

于 2013-03-19T18:52:01.207 に答える