path、classpath最常见的场景:环境变量配置

path环境变量:设置path的作用是让操作系统可以找到JDK命令(指定了JDK命令搜索路径);path环境变量原来Windows里面就有,只需修改一下,使他指向JDK的bin目录,这样在控制台下面编译、执行程序时就可以直接使用java、javac命令了;

classpath环境变量:告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。JVM和其他JDK工具通过依次搜索平台库,扩展库,和类路径来查找类。

最通俗可以这样理解:path是操作系统用 ,classpath是java编译器用。

classpath第二个常见:DOS下执行java代码的编译、执行

假设你要编译的类文件名叫:HelloWorld.java,其完全路径为:D:/java/HelloWorld.java。但你所在的当前目录是:C:/Documents and Settings/peng>。如果想在这里执行编译,会有什么结果呢?

(1).C:/Documents and Settings/peng> javac HelloWorld.java 这时编译器会给出如下的错误提示信息:
error: cannot read: HelloWorld.java
这是因为默认情况下javac是在当前目录下查找类文件,很明显这个路径不是我们存放类文件的地方,所以就会报错了
(2).C:/Documents and Settings/peng>javac D:/java/HelloWorld.java
这时编译成功。
所以,只要你执行javac命令的目录不是类文件存放的目录,你就必须在javac命令中显式地指定类文件的路径。

如上两种情况下,classpath就是存放.class等编译后文件的路径。

第一种情况下,如果我们可以把HelloWorld.java所在的路径,设置为classpath,则可以执行成功;

第二种情况下,我们采用了绝对路径,指定.class编译文件路径,编译成功;

但是,如果执行编译、运行java程序时,它引用了第三方的jar包,DOS下执行,就需要-classpath来引入第三方jar或类;

案例:

java -classpath 第三方包路径 XXX

结论:

(1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类,但被引用类的.class文件不在当前目录下时,就需要通过-classpath来引入类
(2).何时需要指定路径:当你要编译的类所在的目录和你执行javac命令的目录不是同一个目录时,就需要指定源文件的路径(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)

Eclipse下创建一个普通java工程,默认会创建两个个文件:.classpath、.project

.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置
.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH

如果创建的是一个maven工程,则通过pom.xml定义项目编译时需要使用的第三方jar或类

参考:

http://blog.csdn.net/cheney521/article/details/8672066

http://blog.csdn.net/ghost_t/article/details/5782999

http://casheen.iteye.com/blog/540385

转载于:https://www.cnblogs.com/huahua035/p/6598863.html

path、classpath理解相关推荐

  1. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。

    JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用. 今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找 ...

  2. JAVA_HOME PATH CLASSPATH

    Long long ago in a galaxy far,far away...... HakunaMatata 主页博客相册|个人档案 |好友   查看文章   为什么要设置JAVA_HOME&a ...

  3. path classpath

    path 是一个环境变量,就像一个程序中你声明的一个变量有用户级和系统级的,可以理解为全局和局部变量变量当然是用来用的,这样系统就可以根据path=value的value来找到相应的可执行文件就像你在 ...

  4. classpath理解

    我们一起来研究一下:"java HelloWorld"的执行过程以及原理. D:\course\JavaProjects\02-JavaSE\chapter01>java H ...

  5. linux tomcat设置classpath,理解Tomcat的Classpath-常见问题以及如何解决

    在很多Apache Tomcat用户论坛,一个问题经常被提出,那就是如何配置Tomcat的classpath,使得一个web应用程序能够找到类或者jar文件,从而可以正常工作.就像许多困扰Tomcat ...

  6. path,classpath

    1.path作用. 在环境变量里面配置 win+r 打开cmd qq窗口就弹开了. 2.classpath是java里的选项. java执行java类的时候,会去看这个java类是否在classpat ...

  7. java环境classpath_JAVA中的环境变量配置 PATH CLASSPATH

    1.CLASSPATH是什么?它的作用是什么? 首先,classpath 是javac编译器的一个环境变量.它的作用与import.package关键字有关.当你写下improt java.util. ...

  8. JAVA CLASSPATH 和PATH的区别 经典

    JAVA CLASSPATH 和PATH的区别 收藏 PATH: 用来指定 java 虚拟机(JVM) 所在在目录,也就是我们最常用的用来编译java源程序的javac.exe 和用来执行 *.cla ...

  9. 关于JAVA_HOME, CLASSPATH和PATH的设置

    http://bbs.csdn.net/topics/120079565 1.PATH,这个是给WINDOWS操作系统用的,告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工 ...

最新文章

  1. IC/FPGA校招笔试题分析(二)任意切换的时钟分频电路
  2. OVS DPDK--介绍(二)
  3. hibernate映射关系的配置
  4. .svn文件夹_SVN下载安装及使用教程(二)
  5. 吴恩达《机器学习》第九章:神经网络的学习
  6. vue怎么实现手风琴效果_Vue中使用v-for制作动态手风琴效果
  7. 安装apk出现Parse error when parsing manifest. Discontinuing installation.解决方案
  8. python 24点题目分析_24点游戏的递归解法和Python实现
  9. hsql导入mysql_转-jira从HSQL迁移到MYSQL
  10. 【鸿蒙】鸿蒙App应用-《记账软件》开发步骤
  11. 吊炸天的 JD-hotkey !京东开源!单机 QPS 高达 370000
  12. 微信怎么加入黑名单?微信黑名单怎么恢复好友
  13. 命令行修改windows壁纸
  14. 【JZOJ4178】【NOI2015模拟YDC】游戏(阶梯nim游戏)
  15. MySQL查询时不加order by的时候默认排序规则是什么?
  16. 敏感词过滤程序编写敏感词过滤程序
  17. C语言编写万年历,解决1582年历史问题
  18. JavaScript代码具体是怎么引入到HTML中的?
  19. 旧路由器改装无线打印服务器,旧路由器改wifi放大器详细教程【图】
  20. Java入门——方法的使用

热门文章

  1. 访问文件服务器提示“服务器存储空间不足”的解决方法
  2. objective-c block 旧版详解
  3. 如何设置postfix别名邮件组只接受本域的邮件
  4. sql2000数据库备份文件还原到sql2005
  5. java 生产者消费者同步_经典线程同步问题(生产者消费者)--Java实现
  6. WebGIS——Openlayers加载图层
  7. 为什么有的人喜欢夜间工作_为什么开发人员喜欢在夜间编码
  8. raspberry pi_2018十大Raspberry Pi故事
  9. 重启openstack服务_如何“ Kubernetize” OpenStack服务
  10. HTML min/maxlength