|
在WINDOWS下編譯完成的檔案再LINUX下卻出現Exception in thread "main" java.lang.NoClassDefFoundError: gg (wrong name: ff/gg)
GOOGLE一下發現
首先
在Linux環境中,用javac gg.java編譯成功,但是java eg的時候出現Exception in thread "main" java.lang.NoClassDefFoundError,解決辦法:
執行java -cp . eg或者java -classpath . gg,如果執行通過,說明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吧- vi # .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
複製代碼 再次執行還是
Exception in thread "main" java.lang.NoClassDefFoundError: gg (wrong name: ff/gg)
看起來像是被加包 package 因為我的package是ff所以執行下列指令執行即可
|
|