别讨论了,看看jdk的文档:docs\tooldocs\findingclasses.html

解决方案 »

  1.   

    其实就是在classpath中加一个  .  的问题。你试了吗。别告诉我你不知道。
      

  2.   

    package com.cn;
    public class aaa 
    {
    public static void main(String[] args) 
    {
    System.out.println("Hello World!");
    }
    }
    保存在c;\aa目录下。然后C:\aa>javac -d c:\aa aaa.javaC:\aa>java com.cn.aaa
    Hello World!
      

  3.   

    粘贴一下收集的:通常,我们需要设置三个环境变量:JAVA_HOME、PATH  和  CLASSPATH。
      
              JAVA_HOME:该环境变量的值就是  Java  所在的目录,一些  Java  版的软件和一些  Java  的工具需要用到该变量,设置  PATH  和  CLASSPATH  的时候,也可以使用该变量以方便设置。
      
              PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找  PATH  中的每一个路径,直至找到。或者找完  PATH  中的路径也不能找到,则报错。Java  的编译命令  (javac),执行命令  (java)  和一些工具命令  (javadoc,  jdb  等)  都在其安装路径下的  bin  目录中。因此我们应该将该路径添加到  PATH  变量中。
      
              CLASSPATH:也指定一个路径列表,是用于搜索  Java  编译或者运行时需要用到的类。在  CLASSPATH  列表中除了可以包含路径外,还可以包含  .jar  文件。Java  查找类时会把这个  .jar  文件当作一个目录来进行查找。通常,我们需要把  JDK  安装路径下的  jre\lib\rt.jar  (Linux:  jre/lib/rt.jar)  包含在  CLASSPATH  中。
      
              PATH  和  CLASSPATH  都指定路径列表,列表中的各项  (即各个路径)  之间使用分隔符分隔。在  Windows  下,分隔符是分号  (;),而在  Linux  下,分隔符是冒号  (:)。
      
              下面分别说明三个环境变量在  Windows  和  Linux  下如何设置,不过在此之前,我们需要做个假设。假设  JDK  在  Windows  下的安装路径是  C:\jdk\,在  Linux  下的安装路径是  /usr/local/jdk/。那么,安装后的  JDK  至少会包括如下内容:
      
                      C:\jdk  (/usr/local/jdk)
                          |--  bin
                          |--  demo
                          |--  include
                          |--  jre
                          |      |--  bin
                          |      `--  lib
                          `--  lib
      
      *****    在  Windows  下设置
      
              Windows  下使用  set  命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的  autoexec.bat  文件中进行设置,如:
      
                      set  JAVA_HOME=C:\jdk
                      set  PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command
                      set  CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.
      
              有些版本的  Windows  不能用  %变量名%  来替换环境变量的内容,那么就只好直接写  C:\jdk  而不是  %JAVA_HOME%  了。另外,C:\Windows  和  C:\Windows\Command  是  Windows  会自动加入路径的,所以可以从设置中去掉。如果在  autoexec.bat  中已经设置了  PATH,那只需要将  %JAVA_HOME%\bin  加到原来设置  PATH  的那条语句中就行了。
      
              CLASSPATH  也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在  C:\java  中,就可以把  C:\java  也添加到  CLASSPATH  中去,set  CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.。
      
              注意,在  CLASSPATH  中包含了一个“当前目录  (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的  Java  程序,即使该路径并未包含在  CLASSPATH  中也可以。原因很简单:虽然没有明确的把该路径包含在  CLASSPATH  中,但  CLASSPATH  中的  “.”  在此时就代表了该路径,如:
      
              假设在  C:\java  目录下有可运行的类  HelloJava.class,那么
      
                      C:\>  set  CLASSPATH=C:\jdk\jre\lib\rt.jar;.      //  设置  CLASSPATH  环境变量,注意最后有一个  “.”
                      C:\>  cd  java                                                                  //  转到  C:\java  目录
                      C:\java>  java  HelloJava                                            //  运行  HelloJava
                      Hello,  Java.                                                                //  运行结果
                      C:\java>  _
      
              该例将在  1.3.3  节中分析。
      
      ****  在  Linux  下设置
      
              Linux  下使用“变量名=变量值”设置变量,并使用  export  命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在  ~/.bash_profile  里或者  ~./bashrc  里进行设置,如
      
                      export  JAVA_HOME=/usr/local/jdk
                      export  PATH=$JAVA_HOME/bin:$PATH
                      export  CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.
      
              设置  PATH  时用的  $JAVA_HOME  是指替换变量  JAVA_HOME  的值到  $JAVA_HOME  所在位置。如上句实际就是  export  PATH=/usr/local/jdk/bin:$PATH。这句中  $PATH  也是同样的作用,不过这里的  PATH  是指以前设置的  PATH  变量的值,而非本次设置  PATH  变量的值。
      
              注意,在  CLASSPATH  中包含了一个“当前目录  (.)”。包含了该目录后,就可以到任意目录下去执行需要用到该目录下某个类的  Java  程序,即使该路径并未包含在  CLASSPATH  中也可以。原因很简单:虽然没有明确的把该路径包含在  CLASSPATH  中,但  CLASSPATH  中的  “.”  在此时就代表了该路径,例如
      
              假设在  /home/fancy/java  目录下有可运行的类  HelloJava.class,那么
      
                      [fancy@matrix  fancy]$  export  CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:.    //  设置  CLASSPATH,注意最后的“.”
                      [fancy@matrix  fancy]$  cd  ~/java                                                                                  //  转到  /home/fancy/java
                      [fancy@matrix  java]$  pwd                                                                                                //  显示当前目录
                      /home/fancy/java                                                                                                                //  当前目录是  /home/fancy/java
                      [fancy@matrix  java]$  java  HelloJava                                                                          //  运行  HelloJava
                      Hello,  Java                                                                                                                          //  运行结果
                      [fancy@matrix  java]$  _
      
              该例将在  1.3.3  节中分析
      
      *****    实例分析
      
              1.3.1  节和  1.3.2  节中的用到的实际上是一样的例子,只是操作系统不同,略有差别。
      
              两个例子都提到一个“可运行的类”,它是指包含了  public  static  void  main(String[]  args)  方法的类,这将在下一章  HelloJava  一节中详述。例中的  CLASSPATH  均未包含  HelloJava.class  所在的目录(C:\java,  /home/fancy/java),但是均包含了当前目录  (.)。因此转到包含  HelloJava.class  的目录下去执行  java  HelloJava,在  Java  寻找到  CLASSPATH  中的“.  (当前目录,C:\java,  /home/fancy/java)”时,找到了  HelloJava.class,运行成功。
      

  4.   

    wjmmml 兄,你aaa 文件怎么会在aa  目录下找到??
    不是要放在和包名同名的目录下吗??
      

  5.   

    哎,因为我刚到公司,刚坐到这台机器旁边,软件都是别人装的,目录没整理好,弄了这么多天,我才知道,在自己的机器上就有jdk的说明。。真晕啊
      

  6.   

    to:
    wjmmml 兄,你aaa 文件怎么会在aa  目录下找到??
    不是要放在和包名同名的目录下吗??-------------------
    aa就是c:下的任何一个目录,就是你把你的helloword.java的一个任何目录,可以直接放到c;盘下面,
    明白了吗?package com.cn;
    public class hello
    {
    public static void main(String[] args) 
    {
    System.out.println("Hello World!");
    }
    }
    保存在c;\aa目录下。然后C:\aa>javac -d c:\aa hello.javaC:\aa>java com.cn.hello
    Hello World!这样明白了吧
      

  7.   

    1:jdk开发中系统环境变量设置:
    方法如下:
    Win2000中:
    右键我的电脑--》属性--》高级--》环境环境变量
    classpath=.;jdk安装目\lib
    path=jdk安装目录\bin
    注意:一定不可忽略“.”。
    Win98中:
    修改autocexe.bat 就是修改自动批处理文件。
    添加:
    set classpath=.;jdk安装目\lib
    set path=jdk安装目录\bin;%path%2:(前提设置好了系统环境变量)
    不带包的编译,相当简单:
    javac 类名.java
    java 类名关于带包的编译问题:
    如果你的类是带包的,应该用如下方法编译:
    javac -d  包的父目录 类名.java
    java  包名.类名
      

  8.   

    我一直以为,一个类的包名是什么,就要放到那个名字的目录下呢。
    即:如果有class a 在 package b.c 中,(b包的子包c中有类 a)
    就一定有目录 b\c\a.class我的理解是错的拉??别怪我笨,俺们不是在学吗???