classpath是说系统在遇到要载入class的时候,会自动在classpath
指定的路径里面去寻找对应的类文件。由。classLoader载入。
包可以这样理解:就是相对于你的目录
比如:你的源文件放在C://your//下面
且在文件里面定义了包:package com;
那么你的类文件必须放在一个XXXX//com//下面
这样你可以运行:
java com.AAA///注意要再com的父目录下面执行该命令。
 如果你没有指定包,那么系统放在默认包里面:当前的目录

解决方案 »

  1.   

    包表达类之间关系的逻辑结构.用路径实现.有路径就有根目录,根目录就是classpath.
      

  2.   

    : ggyy(发誓:再也不丢钱包了)提到:
    比如:你的源文件放在C://your//下面
    且在文件里面定义了包:package com;
    那么你的类文件必须放在一个XXXX//com//下面*请给出这个例子的classpath设置
    另外,我还是不太明白,比如XXXX//com//中的XXXX是一个随意的路径?
    一般的程序中没有package com 这个东西,就是说它不属于任何一个包了?对于这样没有用到package 关键字的程序来说,classpath有什么作用呢?
    com与com.hhhh只是习惯上的区别?
    比如如果用package com.hhhh代替了 
      

  3.   

    ggyy(发誓:再也不丢钱包了)提到:
    比如:你的源文件放在C://your//下面
    且在文件里面定义了包:package com;
    那么你的类文件必须放在一个XXXX//com//下面*   请给出这个例子的classpath设置
    *   另外,我还是不太明白,比如XXXX//com//中的XXXX是一个随意的路径?
    *    一般的程序中没有package com 这个东西,就是说它不属于任何一个包了?对于这样没有用到package 关键字的程序来说,classpath有什么作用呢?
    *   com与com.hhhh只是习惯上的区别?
    比如如果用package com.hhhh代替了package com,那类的放置目录和classpath都有什么不同呢?
      

  4.   

    大概有些明白了,是否可以这样理解:
    classpath设定了包的路径,而package 定义了在classpath设定的路径中的更具体的class路径.
    classpath与包的定义共同组成了class的存在路径?
    另外,package 定义的是相对路径,要由classpath确定是在那个目录中的相对路径.
    还有,对于包的性质,每个包是一个文件形式的东西,还是一个标志性的信息存放在一个检索文件里?
    比如是否有类似java.lang这样的文件存放lang包?
      

  5.   

    同意 ggyy(发誓:再也不丢钱包了) 
    确实是namespace,c#的与Java类似,只不过C#用namespace关键字
      

  6.   

    这个很简单的问题啊
    包可以简单地理解成目录啊
    在你的程序里一定要告诉编译器到哪里去(目录)找这些你import进来的类。
    而怎么告诉编译器呢?就是在classpath里指定啊
    比如我要用到AAA这个类,而这个类具体放在c:\com\my\AAA.class
    那么我们在classpth里面就要指定这个路径:-classpath "c:\"
    然后在你的程序里import com.my.AAA时,编译器就能成功找到这个类了!
    另一种情况是:所有你import进来的类在一个jar文件里,那么:
    在classpath里也要指定这个jar文件
    比如:AAA.class在bb.jar这个文件里
    那么在classpath里就要"c:\bb.jar"了
      

  7.   

    关于woowindice(黑山老妖) 的例子,如果我理解没错,是否ye是这样的:
    要用到AAA这个类,而这个类具体放在c:\com\my\AAA.class
    如果classpath设置为"c:\com",那么程序里import my.AAA就可以了吧?
    import 后面跟得是类还是包?这个好像是我迷惑的地方.
      

  8.   

    import 里只是指定了你需要的类,com.my.AAA既指明了引入什么类,也说明了该类相对于当前类的位置。