path、classpath理解
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理解相关推荐
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用. 今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找 ...
- JAVA_HOME PATH CLASSPATH
Long long ago in a galaxy far,far away...... HakunaMatata 主页博客相册|个人档案 |好友 查看文章 为什么要设置JAVA_HOME&a ...
- path classpath
path 是一个环境变量,就像一个程序中你声明的一个变量有用户级和系统级的,可以理解为全局和局部变量变量当然是用来用的,这样系统就可以根据path=value的value来找到相应的可执行文件就像你在 ...
- classpath理解
我们一起来研究一下:"java HelloWorld"的执行过程以及原理. D:\course\JavaProjects\02-JavaSE\chapter01>java H ...
- linux tomcat设置classpath,理解Tomcat的Classpath-常见问题以及如何解决
在很多Apache Tomcat用户论坛,一个问题经常被提出,那就是如何配置Tomcat的classpath,使得一个web应用程序能够找到类或者jar文件,从而可以正常工作.就像许多困扰Tomcat ...
- path,classpath
1.path作用. 在环境变量里面配置 win+r 打开cmd qq窗口就弹开了. 2.classpath是java里的选项. java执行java类的时候,会去看这个java类是否在classpat ...
- java环境classpath_JAVA中的环境变量配置 PATH CLASSPATH
1.CLASSPATH是什么?它的作用是什么? 首先,classpath 是javac编译器的一个环境变量.它的作用与import.package关键字有关.当你写下improt java.util. ...
- JAVA CLASSPATH 和PATH的区别 经典
JAVA CLASSPATH 和PATH的区别 收藏 PATH: 用来指定 java 虚拟机(JVM) 所在在目录,也就是我们最常用的用来编译java源程序的javac.exe 和用来执行 *.cla ...
- 关于JAVA_HOME, CLASSPATH和PATH的设置
http://bbs.csdn.net/topics/120079565 1.PATH,这个是给WINDOWS操作系统用的,告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工 ...
最新文章
- IC/FPGA校招笔试题分析(二)任意切换的时钟分频电路
- OVS DPDK--介绍(二)
- hibernate映射关系的配置
- .svn文件夹_SVN下载安装及使用教程(二)
- 吴恩达《机器学习》第九章:神经网络的学习
- vue怎么实现手风琴效果_Vue中使用v-for制作动态手风琴效果
- 安装apk出现Parse error when parsing manifest. Discontinuing installation.解决方案
- python 24点题目分析_24点游戏的递归解法和Python实现
- hsql导入mysql_转-jira从HSQL迁移到MYSQL
- 【鸿蒙】鸿蒙App应用-《记账软件》开发步骤
- 吊炸天的 JD-hotkey !京东开源!单机 QPS 高达 370000
- 微信怎么加入黑名单?微信黑名单怎么恢复好友
- 命令行修改windows壁纸
- 【JZOJ4178】【NOI2015模拟YDC】游戏(阶梯nim游戏)
- MySQL查询时不加order by的时候默认排序规则是什么?
- 敏感词过滤程序编写敏感词过滤程序
- C语言编写万年历,解决1582年历史问题
- JavaScript代码具体是怎么引入到HTML中的?
- 旧路由器改装无线打印服务器,旧路由器改wifi放大器详细教程【图】
- Java入门——方法的使用
热门文章
- 访问文件服务器提示“服务器存储空间不足”的解决方法
- objective-c block 旧版详解
- 如何设置postfix别名邮件组只接受本域的邮件
- sql2000数据库备份文件还原到sql2005
- java 生产者消费者同步_经典线程同步问题(生产者消费者)--Java实现
- WebGIS——Openlayers加载图层
- 为什么有的人喜欢夜间工作_为什么开发人员喜欢在夜间编码
- raspberry pi_2018十大Raspberry Pi故事
- 重启openstack服务_如何“ Kubernetize” OpenStack服务
- HTML min/maxlength