A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© weimoliang 中级黑马   /  2014-5-13 19:17  /  1746 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 weimoliang 于 2014-5-14 06:39 编辑

path 与classpath有啥不同呢?今天在网上也找了好多理解的不是很透彻!


什么时候需要配置 这个两个呢? 出现啥情况需要配置 呢?

评分

参与人数 1技术分 +1 收起 理由
张然龙 + 1

查看全部评分

6 个回复

倒序浏览
1. PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。


2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的.class文件。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
javac -c  路径 (可以指定class文件存放目录)
java -cp  路径  (可以指定要执行的class目录)
它是javac编译器的一个环境变量。
它的作用与import、package关键字有关。
当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦 。 如果java.util这个package在c:\jdk\ 目录下,你得把c:\jdk\这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!



3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

评分

参与人数 1技术分 +1 收起 理由
张然龙 + 1 很给力!

查看全部评分

回复 使用道具 举报
path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方classpath 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类。
回复 使用道具 举报
本帖最后由 官珺伟 于 2014-5-13 20:30 编辑

为什么需要配置path?在cmd命令中输入一个指令时先在当前文件目录下查找命令文件,path的环境变量中依次
查找命令文件,以最先找到的为准,因为配置了path,所以在cmd命令下可以直接输入java和javac等jdk的命令。
什么时候需要classpath?jvm在查找class文件时,如果没有设置classpath会在当前路径查找,设置classpath后,仅在classpath
路径下查找class文件。

回复 使用道具 举报
path是让你的电脑知道java的执行指令在什么地方,让他能去执行 javac等编译指令
而 classpath 就是告诉电脑 你java程序中需要用到的类在什么地方
比如你在程序中调用 String类,电脑怎么知道String是什么?你又没定义过,所以需要提前告诉电脑这个String类是什么
回复 使用道具 举报
不设置path   每一次编译你编写的程序的时候都得调出你安装JDK的目录, 什么盘下什么目录下什么什么的,
每一次使用都要调用,就非常麻烦

所以path配置就诞生了,一次设置,终身使用,是你不二的选择。

而classpath 随着时代的进步,现在JDK已经不用配置这个东东了。

classpath 应用更多的时候,应该就是临时需要的时候
比如你搞定一个项目,安装到到客户的电脑上,你没必要给客户电脑装一个JDk吧,
但是你又得用呀, 好了,装你U盘里,
然后用的时候,设置下临时classpath 搞定了,

然后客户也会觉得你很牛叉的说,呵呵。
回复 使用道具 举报
简单来说:配置path可以一劳永逸地解决自己电脑编译和运行Java文件的方法。因为Java是跨平台的,假设自己的Java程序需要在其他电脑上编译和运行,那么配置别人电脑的path可能会给别人带来不便,所以只需要在控制台配置classpath就OK了,配置一次只能用一次,当关闭控制台再打开,刚才配置的classpath就失效了,所以,配置classpath不会给别人的电脑带来任何不便,还能解决问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马