将忽略Java CLASSPATH环境变量上的jar

时间:2013-04-09 15:34:53

标签: java bash classpath

在我的〜/ .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中的路径是否完全相同。 echo $ CLASSPATH也会返回正确的路径。

为什么我仍然会收到此错误?

1 个答案:

答案 0 :(得分:5)

您需要在export行中bashrc新的classpath变量:

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

此外,如果您在编译java in的shell是在更改bashrc文件之前创建的,那么您将需要使用source ~/.bashrc重新读取bashrc文件。

相关问题