在Linux環境中,用javac eg.java編譯成功,但是java eg的時候出現Exception in thread "main" java.lang.NoClassDefFoundError,解決辦法:
執行java -cp . eg或者 java -classpath . eg,如果執行通過,說明classpath中沒有包含特殊路徑“.",那麼只需要將”."加進classpath中去即可。我的classpath變量是放在當前用戶目錄下的.bash_profile文件中,因此vi進入該文件,修改一下classpath,CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib,記得修改完後保存,退出terminal再登陸就可以了(爲什麼需要退出terminal再登陸呢?原因是.bash_profile是打開bash的時候讀的,如果你對這個文件進行了修改,這種修改是不會被自動讀取並反應出來的,所以你需要重新登錄terminal,再讀一次.bash_profile纔可以哦)。貼一下我改過後的的./bash_profile吧
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME JAVA_HOME=/home/users/yangdan/JDK/jdk1.5.0_12 CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin export JAVA_HOME CLASSPATH PATH