2012-04-21 13 views
1

3日間のフラストレーションの後、私は助けを求めなければなりません。私はclojure.orgのAOTページから適応(examples.hello」コンパイル)を使用して、REPLからこのスクリプトをコンパイルしたいのClojureにはかなり新しいもの:clojureのコンパイル関数を含むスクリプトの使用方法:gen-class?

(ns examples.hello 
    (:gen-class)) 

(defn -main 
    [greetee] 
    (println (str "Hello " greetee "!"))) 

私は私の編集者としてのClojureコンソールプラグインでのjEditを使用し、深刻なプロジェクトのために

$ HOMEで私のディレクトリ構造は次のとおりです。(スペースを節約するために編集した) Clojureの-1.3.0

|-- classes 
|-- clojure-1.3.0.jar 
|-- clojure-1.3.0-slim.jar 
|-- src 
| |-- examples 
| | |-- hello.clj 
| | `-- hello.clj~ 
| |-- jvm 
| 

エラーMSGがある:

FileNotFoundException Could not locate examples/hello__init.class or examples/hello.clj on classpath: clojure.lang.RT.load (RT.java:430) 

いくつかの質問:

a)コンパイル関数が、作成しようとしているクラスファイルを探す必要がある理由をコンパイルしている場合

b)コンパイル機能を動作させるための「正しい」ステップは何ですか? c)この問題に関する私のインターネット検索では、 'classpath'または 'classpath'への参照が多数あります。クラスパスがclojure.jarなどを参照していると仮定し、スクリプトが動作していて、Java 1.5以降では不要だったjava $ CLASSPATHには当てはまらないと仮定するのは正しいですか?

+0

実行中のコマンドで上記のエラーが発生していますか? –

答えて

0

私は厄介な答えをお詫びしますが、私はまだClojureのビルドだけでなく他の言語も理解していません。だから私と一緒に抱きしめてください。私はあなたがleinのようなビルドツールを使用しているという観点から、この答えを書いています。

あなたの主なものはaddr-verifyです - あなたのプロジェクトに付随するproject.cljで指定された名前空間になければなりません。だから、私のメインモジュールはcore.cljであり、その名前空間をaddr-verifyと宣言し、より良い用語がないためにgen-classを宣言または使用します。

私のproject.cljはmainがaddr-verifyであることを示しています。

Clojureアプリケーションをビルドするための優れた点の1つは、プロジェクトを作成するときにすべてを設定することです(例:lein create my-test-proj)。ここで

は、ここに私の./addr-verify/project.cljから適切なライン

(defproject addr-verify "1.0.0-SNAPSHOT" 
    :description "TODO: add summary of your project" 
    :dependencies [[org.clojure/clojure "1.2.1"] 
       [clojure-csv/clojure-csv "1.2.4"] 
       [org.clojure/tools.cli "0.1.0"] 
       [clj-http "0.1.3"]] 
    :aot [addr-verify] 
    :main addr-verify) 

が./addr-verify/src/addr_verify/core.clj

からの最初の数行されています
(ns addr-verify 
    (:gen-class) 
    (:require [clojure.string :as cstr]) 
    (:require [clojure.contrib.str-utils :as ustr]) 
    (:require [clj-http.client :as client]) 
    (:use clojure-csv.core) 
    (:use [clojure.tools.cli]) 
    (:import java.util.Date) 
    (:import java.lang.Thread) 
    (:import java.io.File) 
関連する問題