在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