Linux 下執行Java程式報“Exception in thread "main" java.lang.NoClassDefFoundError”
阿新 • • 發佈:2019-02-19
問題:使用命令“Javac Test.java” 編譯通過,並生成Test.class檔案,但是當“Java Test”時報錯???
[root@tmglh225 ~]# javac Test.java [root@tmglh225 ~]# java Test Exception in thread "main" java.lang.NoClassDefFoundError: Test Caused by: java.lang.ClassNotFoundException: Test at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: Test. Program will exit.
解決辦法:
1)由於沒有配置Java 的classpath,所以我們需要配置classpath
用文字編輯器開啟/etc/profile
在profile檔案末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2)Linux執行.class檔案,需要從包的根目錄開始,也就是說,從工程下的src開始。(這個很重要,估計很多人會出現這個問題,我就是遇到的這個問題)
[root@tmglh225 ~]# cd Javakk [root@tmglh225 Javakk]# cd Test [root@tmglh225 Test]# cd src [root@tmglh225 src]# javac Test.java [root@tmglh225 src]# java Test Hello World!
成功解決。。