2012-05-09 21 views
0

私はたくさんの検索をしましたが、かなりの回答がありました。これは "一般的な"問題であることを示しています...それでも解決できません。コンパイル後にコンパイルされたクラスを読み込めません

私は正常にクラスをコンパイルできます。これを行うために、私はこのbashスクリプトを持っている:

#!/usr/bin/env bash 

if [[ $CLASSPATH ]] ; then 
    extra_classpath="" 
else 
    extra_classpath=":$CLASSPATH" 
fi 

while true ; do 
    case "$1" in 
     -cp | -classpath) 
      extra_classpath=":$2" 
      shift 2 ;; 
     --) 
      shift 
      break ;; 
     *) 
      break ;; 
    esac 
done 

java -cp /usr/share/java/clojure.jar:./classes/:./src/"$extra_classpath" \ 
clojure.main "[email protected]" 

これは基本的にDebianの上の閉鎖とデフォルトでインストールされているもののリメイクである、唯一のクラスパスにローカルディレクトリを追加しました。

私はこのようREPLを起動すると、私はそれから行うことができます。

user=> (compile 'tld.assignment.sum_calculator) 

クラスファイルが./classes/tld.assignment.sum_calculator

で生成されている。しかし、私はロードすることはできませんコンパイルされたもの私は引数として完全修飾クラス名でこのスクリプトを実行しようとしました - 私はファイルが見つかりません。私はこのようなJavaを実行する場合:また

$ java -cp /usr/share/java/clojure.jar:./classes/ \ 
tld.assignment.sum_calculator 1 2 

、すぐREPLから私はスラッシュに置き換えられドットでかつ効果なしにドットと、すべてをリードして、ファイル拡張子とせずに(load "tld.assignment.sum_calculator")を試してみました - (load)常に「成功」​​、リターンそれは終わりです:S

私はクラスdefを見つけることができません。私は何が間違っているのかわからない。 。

EDIT :(:ノイズのために申し訳ありません

、パスの一つの成功順列はそれを作った私はなぜさっぱりだが、私はclojure.jarで./classes/ディレクトリを交換した場合クラスパスでは、Javaの...

答えて

0

パス拡張(?)やJavaローダーがパスを読み込む方法のいくつかのバグのように見えます...とにかく今のところ解消されました。

関連する問題