java 能编译但是不能运行

来源:百度知道 编辑:UC知道 时间:2024/05/20 06:00:26
D:\JavaTest>javac HelloWorld.java

D:\JavaTest>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: HelloWorld. Program will exit.

解决方法也很简单,有两个办法:
1.运行的时候,加上-cp参数,值是一个”.”,表示当前目录。比如:
java -cp . HelloWorld

2.在环境变量里写CLASSPATH = .\;%JAVA_HOME%\lib\tools.jar,同样,注意前面那个”.”。运行时就可以:
java HelloWorld

比起来,后面这个方法彻底点。

你的类文件里带了包名,把代码最上面的package 这一行去掉;

环境变量classpath没配好吧,把jdk 的lib下的tools.jar和dt.jar加到classpath中。如:(,;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar;)

自己学会去读错误