在初学java的时候希望新建一个类并且在命令行中运行它,偶尔会遇到上述报错,具体过程如下:
d:/demo.java:
public class Demo{
public static void main(String args[]) {
System.out.println(args[0]);
}
}
进入到目录d:/使用javac
编译demo.java
为demo.class
:
javac demo.java
运行demo:
java demo
这时经常会报错:Could not find or load main class
问题的原因很简单,java无法找到所谓的demo类。
但是明明当前目录是有demo.class的,为什么java会找不到demo类呢?
这是因为使用java直接运行程序,java默认会去环境变量CLASSPATH所描述的路径里寻找所谓的demo类,如果在当前运行环境下的环境变量里没有CLASSPATH或者CLASSPATH并不包括当前目录,java当然找不到demo.class
解决方法1:
在系统环境变量里定义CLASSPATH并且在其中加入.;
解决方法2:
在java调用类时输入classpath参数,eg:
java -classpath d:/ demo