在我的〜/ .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也会返回正确的路径。
为什么我仍然会收到此错误?
答案 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文件。