classpath的目录是指你安装的jdk目录,javac在编译时会从中找你在原程序中所
import的类,在win2000中因为我没用过,估计微软已经搞定了,至于win98是一定
对的,就是set classpath=。。

解决方案 »

  1.   

    在你的批处理文件加入set classpath=.;c:\你的路径\lib;
      

  2.   

    把自己的几个类件放进一个包中,然后互相引用,即在每个java源文件开头加上package xx; 然后再在引用的文件里用import xx.*; 
    你可以试试把要引用的类各建一个目录,然后再把这些目录放在同一个目录下如:
    package a.xx;
    import a.yy.*;
    ......另一个文件
    package a.yy;
    import a.xx.*
      

  3.   

    再 set classpath = yourpath\a;
      

  4.   

    不用去管w2k的环境变量。
    在dos下运行set classpath=.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar
    然后你可你用 set >> myset.txt把你的系统设置发到myset.txt文件中,
    看看吧,它和w2k提供的窗口界面里的环境变量并不一定相同。
      

  5.   

    import xx.*这条语句可以不用,如果非要加进入,则可以在classpath中加入xx目录的上一级目录,classpath只对jdk1.3以外的类起作用,比如说你要在别的地方(不是xx包中的类)用到的xx包(xx包是你自己写的),如果此时classpath没有设置包括xx包,则javac 的时候找不到xx包,发生例外
      

  6.   

    还是不行呀,我的出现了以下的问题:
    Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong nam
    e: HelloWorld)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
    1)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)怎么回事?请老大门帮忙!!!!
      

  7.   

    错误就是没找到helloworld这个类,helloworld不在classpath中,你需要在classpath中设置,或进入helloworld的目录进行编译.
    如果编译多个同属一个包相互调用的类,进入目录,javac *.java即可
    总之,你要不在classpath中配置你的类路径,要不直接进入类所属在目录进行编译.
    试试
      

  8.   

    >还是不行呀,我的出现了以下的问题:
    >Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong >name: HelloWorld)
     ^^^^^^^^^^^^^^^^^
    大小写问题......
      

  9.   

    跑到helloworld.class的目录下执行
    java -classpath . helloworld
    或者把当前路径加到CLASSPATH(set CLASSPATH=.;其他的路径)里,然后跑到helloworld.class的目录下执行
    java helloworld
      

  10.   

    你的文件名和类名必须完全一致,注意大小写。我用的是win2000, 设置系统变量完全正常,无须在dos中设置。classpath设为
    c:\jdk1.3\dt.jar;c:\jdk1.3\tools.jar;c:\works;c:\works是你的工作目录,c:\works\xx是你的包的目录,
    如果你的HelloWorld.java是xx包中的。在命令行执行时应加上包名,为:
    java xx.HelloWorld 
      

  11.   

     同意 hawaii(hawaii)
     设完classpath后需重起或注销 
      

  12.   

    除了JDK的classes.zip文件目录之外,还应该包括你的工作目录(work path),假如要import *.*.*,则必须指定“*.*.*”所在的目录作为其classpath,以便complier能找到自定义的package。或者为了方便可以直接将jdk的class目录作为你的目录。classpath属性设置的目的就是告诉编译器到哪个地方去寻找应用程序要引用(import)的的文件。而设置jdk\classes目录则是满足程序调用jdk提供的基本类的目的!
      

  13.   

    真的很怪啊,我在win98中把set classpath=...那一条删掉重启,程序照能编译!!
    ??? 
      

  14.   

    仍很奇怪!
    我在win98的机器上把autoexec.bat中那个set classpath=...语句给删了,但程序照能编译运行!!
    ??
      

  15.   

    2000下能不能一次设定classpath?
    每次都要去set一次,才能运行,实在麻烦,还是我哪里漏了?
      

  16.   

    看来我得说得稍详细一点了:
    系统:win2k professionel   jdk1.3.0;
    我的环境变量classpath: 
      .;D:\Program Files\jdk1.3\lib\tools.jar;D:\Program Files\jdk1.3\lib\dt.jar注意,我的工作目录是d:\work\myjava,我把所有的java源文件都放在这儿。一开始,在这个目录下编了两个文件
    //func.java:
    package fym;
    import java.io.*;class func{
    ...
    }//HelloWorld.java:
    import fym.*;
    class HelloWorld{
    ...
    func myf=new func();
    ...
    }编译时出现:
    -------------------------------------
    D:\work\myjava>javac HelloWorld.java
    HelloWorld.java:2: 包 fym 不存在
    import fym.*;
    ^
    HelloWorld.java:7: 不能解析符号
    符号:构造方法 func  ()
    位置:类 in func
        func myf=new func();
                 ^
    HelloWorld.java:8: 不能解析符号
    符号:方法 main  (java.lang.String[])
    位置:类 in func
            myf.main(ss);
               ^
    3 个错误
    *****************************************
    我在HelloWorld.java中改为 import fym.func;
    然后出现:
    --------------------------------------
    D:\work\myjava>javac HelloWorld.java
    HelloWorld.java:2: 不能解析符号
    符号:类 func
    位置:包 in fym
    import fym.func;
               ^
    HelloWorld.java:7: 不能解析符号
    符号:构造方法 func  ()
    位置:类 in func
        func myf=new func();
                 ^
    HelloWorld.java:8: 不能解析符号
    符号:方法 main  (java.lang.String[])
    位置:类 in func
            myf.main(ss);
               ^
    3 个错误
    ****************************************然后,我听从人家的建议,在d:\work\myjava下建了一个名为fym的子目录,HelloWorld.java和func.java都放进去,然后再在classpath中加上“d:\work\myjava”,HelloWorld.java中仍使用import fym.func; 然后再编译运行,成功了!!??????????????这一步是为什么啊,我实在不能理解,是不是一定要搞一个子目录和自已的包名一样啊?
    接着,我试着把import语句改为:import fym.*; 则出现下面的情况:
    ----------------------------------------
    D:\work\myjava\fym>javac HelloWorld.java
    HelloWorld.java:7: 不能访问func
    坏的类文件:.\func.class
    类文件含有错误的类:fym.func
    请去掉或确信它出现在正确的classpath的子目录中.
        func myf=new func();
        ^
    1 个错误
    ********************************************
    ????????????为什么会出现上面的信息呢?我删掉了上次编译好的func.class,然后出现下面的情况:
    ----------------------------------------------
    D:\work\myjava\fym>javac HelloWorld.java
    HelloWorld.java:7: 不能解析符号
    符号:构造方法 func  ()
    位置:类 in func
        func myf=new func();
                 ^
    HelloWorld.java:8: 不能解析符号
    符号:方法 main  (java.lang.String[])
    位置:类 in func
            myf.main(ss);
               ^
    2 个错误
    **************************************************?????我的包名是fym,包里有func类,那么我为什么不能用import fym.*;来引用这个类呢????还有,我不明白为什么一定要在classpath中加上d\work\myjava,难道那个"."不就是代表当前目录吗?
    我试着把它去掉结果又是“包不存在”。
      

  17.   

    fym就是你的包名,暂时这样理解吧,在java中包名在物理上就相当与目录名,包结构就相当于目录结构,所以你要创建一个fym目录,因为你的程序中有package fym这条语句,表示
    这个文件在一个名称为fym的文件夹中
      

  18.   

    你有没有用import fym.func;替换import fym.*;试一试?
      

  19.   

    to: oldbig(老大):
    我建议你找一本比较好的java书,thinking in java或java核心技术系列都可以。仔细的看一遍。同时多查查帮助。因为比较系统的基础知识是很重要的。毕竟在坛子里得到的东西比较散乱。
      

  20.   

    还是环境设置的问题 classpath