1

~/.bashrc で、Java CLASSPATH を次の方法でエクスポートします。

CLASSPATH=$CLASSPATH:/home/user/java/libs/apache-ant-1.9.0/lib/*:/home/user/java/MyProject/libs/*

フォルダー「/home/user/java/MyProject/libs/」には、次の jar が含まれています。

colt.jar    mysql-connector-java-5.1.22-bin.jar
concurrent.jar  postgresql-8.4-703.jdbc4.jar

colt.jar の一部をインポートするプロジェクトのクラスをコンパイルしようとすると、次のエラー メッセージが表示されます。

/src$ javac visualization/VisualizeCorrelationMatrix.java 
visualization/VisualizeCorrelationMatrix.java:16: cannot access cern.colt.matrix.impl.SparseDoubleMatrix2D
class file for cern.colt.matrix.impl.SparseDoubleMatrix2D not found
        int N = cm.columns();
                  ^

ただし、次の方法でコンパイルすると、エラーなしで動作します。

/src$ javac -cp ".:/home/user/java/MyProject/libs/*" visualization/VisualizeCorrelationMatrix.java

CLASSPATH 変数のパスと manuel optino -cp が 100% 同一であることを確認しました。また、echo $CLASSPATH は正しいパスを返します。

それでもこのエラーが発生するのはなぜですか?

4

1 に答える 1

6

exportに新しいクラスパス変数が必要です。bashrc

export CLASSPATH=$CLASSPATH:/home/user/java/libs/apache-ant-1.9.0/lib/*:/home/user/java/MyProject/libs/*

また、Java をコンパイルしているシェルが、bashrc ファイルを変更する前に作成されたものである場合は、source ~/.bashrc.

于 2013-04-09T15:46:37.617 に答える