[Java问题]关于包的概念的实践理解。。。。

jackxiang 2006-12-14 19:17 | |
小弟是一java新手,在CLASSPATH方面遇到一棘手问题。我用的操作系统是WIN2000。安装了J2SE1.4版,安装于C盘。然后创建了一个目录(C:\DOC)用来作练习之用。我在环境变量里增加了一条CLASSPATH,值为(.;C:\DOC;)。然后我编译下面语句:
package test;

public class Vector{
public Vector(){
System.out.println(
"my.Vector");
}
}
在C:\DOC下有一个TEST目录,生成Vector.class 。Vector.java和Vector.class都置于TEST
目录内。
然后我再编译下面的语句:
import test.*;

public class LibTest{
public static void main(String[] args){
Vector v=new Vector();
}
}
则出现如现错误:
C:\DOC\TEST javac LibTest.java
LibTest.java:5: cannot access Vector
bad class file: .\Vector.class
class file contains wrong class: test.Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector l=new Vector();
^
1 error
然而我把import test.*;改为import.Vector;则能成功编译。望各位大虾帮忙解决。

在CLASSPATH中加上.;.代表当前目录,如果不加,编译器在编译LibTest.java时,找test包就不会在当前目录内找,因为找不到,加上就可以了。

加上也不行啊。早就加了。就是不行。
classpath=.;C:\DOC

本人解决方法:
注意目录结构

作为package, test.java 应放C;\doc\test目录中
Libtest.java放在c:\doc下,
classpath设为".;c:\doc\;"
然后

  1. c:\doc>javac test\*.java
  2. c:\doc>javac *.java
  3. c:\doc>java Libtest //ok


D:\Javawork\jt>javac LibTest.java
LibTest.java:4: cannot access Vector
bad class file: .\Vector.java
file does not contain class Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector v = new Vector();
^
1 error

(你的文件没有问题,主要是你的classpath里面有了test目录的java文件。。。)

出现这个问题,你要注意各个文件放的目录,千万不要在不同的目录里面里面有重复的文件。。。。

千万要注意编译顺序啊。。。
不知道说清楚了没有。。。。。要是看到我操作就好了。,。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/405/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2006-12-14 19:29
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]