转载自:http://blog.sina.com.cn/s/blog_d7cdfaa10102vnlu.html 仅供参考学习 如有侵权请私信秒删
在学习Java中的package的时候遇到一个这样的问题
今天在做Java例子的时候遇到一个这样的问题:错误: 程序包com.bjsxt.java140不存在
如图:
这个例子涉及到了两个java文件:
一个是Cat.java:
- package com.bjsxt.java140;
- public class Cat
- {}
一个是Dog.java:
- public class Dog
- {
- public static void main(String[] args)
- {
- com.bjsxt.java140.Cat c=new com.bjsxt.java140.Cat();
- }
- }
两个文件的目录层次如图所示:
怎么会出现这个错误呢?我是按照例子一点点做的啊!经过大约半个多小时的探索,自己终于把问题找到了。
我仔细查看后,确认自己的代码没有问题,然后经过测试,我发现在有两种方法可以成功:
1、现在所有的文件都是在javademo estpackage目录下,如果把它们都拿到javademo这个目录下可以成功。
2、把Cat.java和Dog.java中的package都多加上一层TestPackage也可以成功。
由必须class文件的最上层包的父目录位于classpath下
我的classpath是这样配置的:
于是,我把这个目录改为其他的,再测试,发现又会出现上面的问题。
注意:修改了classpath的变量值一定要重启cmd。
到了这里,我们也就想到了还有一种解决方法就是classpath的变量值改为D:javaDemo;.(点:表示当前目录)