黑马程序员技术交流社区

标题: 看到有人发Classpath,我也想起一个问题 [打印本页]

作者: xiangzi2008006    时间: 2013-8-19 22:28
标题: 看到有人发Classpath,我也想起一个问题
本帖最后由 xiangzi2008006 于 2013-8-20 16:22 编辑

Classpath既然是加载有关的类的环境变量,为什么加载%JAVA_HOME%\lib,而不加载%JAVA_HOME%\jre\lib目录,这里面不是有更多java系统类吗?
作者: joechen    时间: 2013-8-19 23:07
本帖最后由 joechen 于 2013-8-19 23:10 编辑

jre是java运行环境,我们在安装jdk的时候已经安装了jre,我们编写的程序要先经过javac编译,产生class文件,当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行。经过对比会发现javac.exe只存在于jdk1.6.0_10\bin目录下,jdk1.6.0_10\jre\bin目录下没有javac.exe。也就是说classpath应当配置环境变量到jdk1.6.0_10\ bin目录下,我们写的程序才能被javac编译
作者: joechen    时间: 2013-8-19 23:09
joechen 发表于 2013-8-19 23:07
jre是java运行环境,我们在安装jdk的时候已经安装了jre,我们编写的程序要先经过javac编译,产生class文件 ...

jdk1.6.0_10\jre\bin目录下没有javac.exe

作者: ily521125    时间: 2013-8-20 02:14
因为java和javac程序在jdk1.6.0_10\ bin目录下,然而通过配置环境变量,就可以在任意目录下的dos命令行就可以运行这两个程序编译运行java程序,其实也可以不用配置环境变量,不过在dos下运行java和java才这两个程序时要切换到jdk1.6.0_10\ bin目录下,也可以编译运行,一个是让计算机自动去寻找路径,另一个是自己切换路径,本质是一样的,不过老是切换很麻烦,所以要配置环境变量了
作者: xiangzi2008006    时间: 2013-8-20 16:21
怎么感觉楼上回答的和我问的不一样,楼上大多回答path的问题,我问的Classpath变量,而不是path变量。。。刚搜索了下相关问题,发现原来是我理解错了,一直以为Classpath加载我们用到的其他java基础类,如System类,Math类,都忘了张老师的类委托机制了,他们都是通过Loader加载进来的,不是放在Classpath变量下。。。张老师,我对不起你。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2