我在网上看到一篇文章说
--------------------------------------------------------------------------------------------------------------rt.jar ,dt.jar ,tool.jar都是 做什么用的 ,分别什么时候需要设置到classpath里? 
--------------------------------------------------------------- rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库 设置在classpath里是为了让你 import * 
--------------------------------------------------------------- web系统都用到tool.jar 你用winrar看看里面是什么内容啦 
--------------------------------------------------------------- 1. 
rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举 
不信你可以去掉classpath里面的rt.jar 然后用 java -verbose XXXX 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面 不光rt.jar jre\lib下面的大部分jar 都在这个路径里  2. tools.jar 是系统用来编译一个类的时候用到的 也就是javac的时候用到 javac XXX.java 实际上就是运行  java -Calsspath=%JAVA_HOME%\lib\tools.jar  xx.xxx.Main  XXX.java  javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面 3. 
dt.jar是关于运行环境的类库,主要是swing的包   你要用到swing时最好加上 -----------------------------------------------------------------------------------------------------------
大家说说他说的有道理吗?
还有就是我自己配置环境变量的时候只配置了path(C:\Program Files\Java\jdk1.6.0_02\bin;)如果我在一个文件夹下有一个java源文件开始时引入了一个包,java是如何找到我引入的这个包呢?也就是说为什么我没有配置javahome和classpath我写的java程序还是好使呢?

解决方案 »

  1.   

    java需要类库,而Path是路径,Class Path 就是类库的路径
    系统要找到这些class或者jar里的class,至少得告诉系统他们在哪里,这就是 CLASSPATH
      

  2.   

    也就是说为什么我没有配置javahome和classpath我写的java程序还是好使呢?那是因为现在高版本的java安装文件高级点了 以前不行 还是要老老实实自己设置的如果你在源文件中引入第三方的包 就直接import这个包 具体怎么打包和怎么命名包 Java都有自己的规则的 查下吧 一般是URL的倒序输出 比如www.java.com 打包就是com.java.www
      

  3.   

    我的path下放的是.exe啊没有什么.jar .class的。
    还有你们是怎么理解我提到的那篇文章的啊?
      

  4.   

    java需要类库,而Path是路径,Class Path 就是类库的路径 
    系统要找到这些class或者jar里的class,至少得告诉系统他们在哪里,这就是 CLASSPATH 
     
    说的好
      

  5.   

    确实说的好,但是他们都没有回答我的问题,我上面问题里说的那篇文章说的对吗?还有我以前用过jdk低版本,但是只配置path也好使,这是怎么回事?
      

  6.   

    1. 你可以看一下..在LIB目录下面是有.JAR文件包的.
    2. 那篇文字是有道理的...如果喜欢刨根问底的,看那文章不错...其实path只是引导系统找到文件的一种方式..
      

  7.   

    确实是path只是引导系统找到文件的一种方式..只不过path是引导系统找到.exe文件,但是如果不设classpath.如果也不像那篇文章说的那样在类加载器里加载了那些东西。那就不行了。只是不知道那篇文章说的对不?如果对那么没有设置classpath就没什么了,因为当你调用java.exe时,会启动java虚拟机,然后当执行类加载器的时候就把那些原来需要在classpath里设置的类加载进来了。不知道我这么理解对吗?
      

  8.   

    classpath就是你导入系统包的时候需要找到这些包在哪,这是classpath就会告诉jvm这些包的路径(你设置的classpath的路径的内容),但是高版本的jdk不需要设置classpath了,系统会自动到jre中找需要的jar包!!!
      

  9.   

    rt.jar 即 RunTime 类库,即运行时类库,是 JRE 的核心
    dt.jar 即 DesignTime 类库,这是 BeanInfo 文件设计时的压缩包,是给 IDE 用的
    tools.jar 是 JDK 中工具和实用工具支持的非核心类库,包括编译器在内的 JDK 工具另外,从 JDK 5 开始不需要再设计 classpath 这个环境变量了