私はここからの指示に従い、 leinjarを呼び出してcljソースからJavaクラスを生成しようとしています。
ただし、コードを少し編集して独自のテスト関数を追加すると、次のようになります。
(ns some.Example
  (:gen-class))
(defn -main
  [greetee]
  (println (str "Hello " greetee "!")))
(defn -foo []
  "foo bar")
..次に、lein jarを使用してJavaクラスファイルを生成しました(投稿の最後にproject.cljを追加します)。生成されたjarには、内部クラスとしてメソッドが含まれていることがわかりました。
$ jar tvf example-1.0.0.jar 
    76 Sun Feb 17 20:56:24 EET 2013 META-INF/MANIFEST.MF
  1225 Sun Feb 17 20:56:24 EET 2013 META-INF/maven/some/example/pom.xml
    87 Sun Feb 17 20:56:24 EET 2013 META-INF/maven/some/example/pom.properties
  2697 Sun Feb 17 20:56:24 EET 2013 some/Example__init.class
  1499 Sun Feb 17 20:56:24 EET 2013 some/Example$loading__4784__auto__.class
  1035 Sun Feb 17 20:56:24 EET 2013 some/Example$_main.class
   565 Sun Feb 17 20:56:24 EET 2013 some/Example$_foo.class
  1771 Sun Feb 17 20:56:24 EET 2013 some/Example.class
   162 Sun Feb 17 18:03:12 EET 2013 project.clj
   129 Sun Feb 17 19:23:54 EET 2013 some/Example.clj
some.Exampleクラスには、mainメソッドのみが含まれ、fooは含まれていません。
$ javap some.Example
public class some.Example {
  public static {};
  public some.Example();
  public java.lang.Object clone();
  public int hashCode();
  public java.lang.String toString();
  public boolean equals(java.lang.Object);
  public static void main(java.lang.String[]);
}
したがって、問題は、Javaコードからこれらのメソッドを呼び出すことを目的として、多数の静的メソッドとインスタンスメソッドを含むJavaクラスを生成するcljClojureファイルをどのように指定できるかということです。
* leinjar*操作に使用されるproject.clj
(defproject some/example "1.0.0"
  :description "A sample project"
  :dependencies [[org.clojure/clojure "1.4.0"]]
  :aot [some.Example]
  :source-paths ["."]
  )