classpath的设置相当重要,具体的你可以查一下旧贴吧,这方面的帖子很多很多。
下班了,祝你愉快

解决方案 »

  1.   

    有些第三方开发包,一般要加入classpath,只有这样才能正常使用jdk的各种工具。当然啦,如果你用的开发工具比较高级,比如jb、forte等,那就没有必要配置classpath喽。
      

  2.   

    所有的这些都是为了,jvm能找到你的class,只要能找到,放在口袋里都行
      

  3.   

    不同的应用不同对待,有的会检测系统的classpath.有的自带JDK不用系统的classpath.
      

  4.   

    养成了一个良好的习惯,还是使用ClassPath吧
      

  5.   

    Java.exe有参数-classpath允许指定附加的class,这一点容易理解!而且,很多的IDE就是通过自动设置这个参数来简化我们的开发工作的。而对于JDK本身,似乎Java有一套机制去找到,为什么呢?如下:各位需要注意的是,我现在是在命令行方式下运行"java myapp"的,没有指定任何的classpath!另外,我现在想讨论的是ClassPath这个系统环境变量,而不是Javaexe的参数-classpath。
      

  6.   

    另外,我认为设置ClassPath这种环境变量就是一种设计上的缺陷!因为ClassPath环境变量是全局的,很容易污染了整个系统!比如,两个应用程序,都带了同一个jar包,而分别是不同的版本!如果这时候,两个应用程序都设置了ClassPath,问题就出现了!虚拟机应该装载哪一个jar包?自然,这个决定于ClassPath中的路径顺序,在前者为优先!好了,如果两个jar包不兼容,那么两个应用程序中必然有一个运行失败!这就是Windows里的DLL Hell!同样,环境变量Path现在也很少使用了,因为会导致同样的问题。当然还是有一些程序在顽固的使用!Path完全是旧系统的遗留!作为ClassPath环境变量的替换方案,我认为还是使用-classpath参数比较好。
      

  7.   

    你试试这个软件吧,可以解决一些你的问题。http://www.csdn.net/cnshare/soft/16/16708.shtm
    你说classpath是全局,其实它应该是默认才是
    你自己不是也说可以使用java -cp加你自己的classpath吗我自己认为除了JDK标准包文件外,要是我引用了别的文件,我会把它打入自己的应用程序,而不是利用classpath加额外的包
      

  8.   

    设置classpath当然是重要的,不信你再写写其他的java程序看看,看能不能正常?
      

  9.   

    to leejidongdong(立即动动):不知道你有没有仔细看清楚上面的帖子,我已经去掉ClassPath,一切OK!作为反证法,一个足矣!
      

  10.   

    To gameboy999(预防非典,从我做起):ClassPath是默认,也是全局,其实是一个意思。首先,我不设置ClassPath,JVM照样能够正确装载标准的运行库,说明其内部有某种机制来查找。其次,对于公用库(第三方库),我可以使用ClassPath,但是不推荐。所以,ClassPath本身就是没有必要的!这就是我的推论。ps:java类别查找器在英文Win2K(Local:English)下显示的是乱码。
      

  11.   

    假设你的系统盘在C盘, 那么安装了JDK后, 可以看到目录C:\Program Files\Java\j2re1.4.1_01, 注意C:\Program Files\Java\j2re1.4.1_01\lib和C:\Program Files\Java\j2re1.4.1_01\lib\ext下的jar文件是JVM运行是默认会装载的运行库, 所有有时你不需要设置Classpath就能运行Java程序,只要你没有使用JDK之外的类库.这个目录是可以通过控制面板中的Java Plug-in来修改了,去看看吧.我不会设classpath, 但是我会设置JAVA_HOME, 有兴趣知道原因就去看看启动Tomcat的批处理文件吧.
      

  12.   

    你要是用的IDE工具的话就不用设置了,要不好多的项目都要设置到一个变量里面去,容易冲突的
      

  13.   

    To glassprogrammer():果然在Advanced栏里看到
    Java Runtime Envirement:Use Java Plug-in Default只是不知道Default这个东西,到底在哪里?而且,我们也看到所有已经安装的JRE目录,估计是有个地方存放所有这些列表的。JAVA_HOME的设置,容易理解,主要是告知JRE的位置,特别是有很多JRE的时候。我很纳闷,为什么SUN在JRE的安装程序里,没有自动设置这个JAVA_HOME环境变量呢?或许,JAVA_HOME的使用,仅仅是人们为了方便约定俗成的约定而已,而非SUN官方的标准。另外,很多JAVA程序,在自己的启动程序里,比如BAT文件里,内部设定JAVA_HOME这个变量,作为内部使用,或许这样更好!
      

  14.   

    optman说的不错,现在好像SUN也发现当初CLASSPATH设计的初衷已经与现在相背离了,所以建议大家执行java的时候直接加参数 -classpath 带各种包。
    以前jre是很依赖classpath这个变量的--你可以装jdk1.1左右的版本,然后把CLASSPATH环境变量删掉,就会连基本的启动主线程都报出找不到CLASS的错误。
      

  15.   

    你可以不要的,只是你要在bin的目录下才可以编译的。升值设置classpath就可以在任何目录下编译了。
      

  16.   

    to optman(optman) default的jre,一般就在你系统盘的program files下
    JAVA_HOME确实是个约定俗成的东东,很多bat文件使用它来找jre或jdk例如tomcat的setclasspath.bat中有:
    if not "%JAVA_HOME%" == "" goto gotJavaHome