很急的一个问题,但又很简单./请大家进来帮忙看一下是怎么搞的,谢谢了.
一个简单的java程序:
package one.two.three.four;
class A
{
public static void main(String[] args)
{
System.out.println( "Hello World! ");
}
}
我在dos命令提示符下:找到了A.java的位置用:javac -d d:\ A.java 编译成功:
在d盘的根目录下生成了: one\two\three\four\A.class (one--four为文件夹).
接着我又设置classpath=d:\one\two\three\four;.;
接着执行:用命令提示符进入到:d:\one\two\three\four> 执行:java A 提示错误.
我不明白.four文件夹下有一个A.class文件啊/怎么会失败呢?
[解决办法]
classpath 指向到d:即可
不要进入到包内部执行;
在d:目录下 执行 java one.two.three.four.A
这里有一个java关于包的概念,one.two.three.four 它是java的包,
[解决办法]
对,
classpath是指定了一个搜索路径,
虚拟机搜索一个类是按照搜索路径 再加上 你的类所在的包, 你的类名这样去找的。
这样你想像一下,你把classpath指向到了four下,你在four下执行,只不过你的当前路径落在了 four下,和你classpath指向four下是一样的效果,
虚拟机找A,他会说没有这个类,因为他认可的应该是 包路径+A 而不是 A