如果你输入一个命令,比如
java
那么系统是如何找到这个命令的呢?
按照顺序,系统先在当前目录搜索是否有java.exe, java.bat 等。 如果没有,就得到系统的PATH(不区分大小写)里面查找。

比如你的环境变量的PATH里面有 C:\program files\java\jdk1.6\bin
那么 系统会尝试在这个目录下面查找,并且找到了 java.exe 那么就会执行它。
所以 path 就是系统为了搜索某个资源而配置的一个参数。 多个目录之间用分号(linux里面用冒号)分割。

那么CLASSPATH呢? 同样的道理,当我们需要某个class时,系统会自动在CLASSPATH里面搜索,如果是jar,就自动从jar里面查找,如果是普通的目录,则在目录下面按照package进行查找。
但与PATH不同的是,默认的CLASSPATH是不包含当前目录的,这也是CLASSPATH里面要包含一个点的道理了。

Tomcat下的Web应用有两个预置的classpath : WEB-INF/classes 和WEB-INF/lib启动项目,项目就会加载这两个目录里的数据。这是war包的规范.要改变预置的classpath比较麻烦,在Tomcat的配置文件里没有发现类似的配置,要实现自己的classloader才能达到目的。

一个在tomcat中运行的web应用.它的classpath都包括如下目录:
我知道的有:
%tomcat%/lib
web-inf/lib
web-inf/classes
环境变量里的classpath

总结:classpath这是一个定位资源的入口.classpath下 lib的优先级大于classes;

--------------------------------------------------------------------------------------------------------------------------------

【1.环境变量】 通俗的说,环境变量就是在操作系统中定义的变量,可供操作系统上的所有应用程序使用。
查看环境变量: 命令行下 set命令。set命令查看到的是用户变量和系统变量值的总和。
【path环境变量】
将某个环境变量包含在一对%%之间,表示取这个环境变量的当前值.
当计算机上装有多个java开发工具,如何知道命令行窗口中执行的java命令属于那个开发工具包呢? 只要在运行java.exe时加上verbose参数就行了,格式如下:
java -verbose
java虚拟机启动时,就会显示其详细的加载过程信息。
path环境变量的作用:path环境变量的作用是设置供操作系统去寻找和执行程序的路径,也就是说如果操作系统在当前目录下 没有找到我们想要执行的程序和命令时,操作系统就会按照path环境变量指定的目录依次去寻找,以最先找到的为准。
path环境变量可以存放多个路径,路径和路径之间用分号(;)隔开。
【脚下留心】运行java代码的命令是 java XXX 而不是 java XXX.class!运行时不要带上.class扩展名。如果源文件为XXX.java,文件中有多个类定义,编译后的.class文件就有多个能直接用java命令启动运行只有那个含有main函数的类。java命令后面跟的参数是类名,而不是文件名。尽管文件名为XXX.java,却不见得是以java XXX的形式运行程序,关键还是要看类名。
【classpath环境变量】java虚拟机要装载某一个类时,去那个目录下查找?
java虚拟机在查找类的时候,不会在当前目录下查找,只找classpath指定的目录,因此我们如果不配classpath环境变量,在当前目录下编译java文件时,就会提示找不到class文件。因此我们通常在配classpath变量时用.表示当前路径.
【java中的注释】java里的注释根据不同的用途分为三种类型:
单行注释:在注释内容前加双斜线。
多行注释: 通过 /* int c=5;*/
文档注释: 通过/** 这里是注释内容*/
文档注释的内容会被解释成程序的正式文档,并能包含进诸如javadoc之类的工具程序生成的文档中。

\r表示接受键盘输入,相当于按下回车
\n表示换行
\t表示制表符,相当于Table键
\b表示退格键,相当于Back Space.
\'表示单引号
\''表示双引号
\\表示一个斜杠"\"

java之classpath到底是什么的更多相关文章

  1. Java 基础 - CLASSPATH 到底是什么

    关于JAVA项目中CLASSPATH路径详解 https://www.cnblogs.com/hibou/p/8324276.html java项目中的classpath到底是什么 https://s ...

  2. Java finally语句到底是在return之前还是之后执行(JVM字节码分析及内部体系结构)?

    之前看了一篇关于"Java finally语句到底是在return之前还是之后执行?"这样的博客,看到兴致处,突然博客里的一个测试用例让我产生了疑惑. 测试用例如下: public ...

  3. java classpath import package 机制 @Java的ClassPath, Package和Jar

    java classpath import package 机制   從一個簡單的例子談談package與import機制 基本原則:為什麼需要將Java文件和類文件切實安置到其所歸屬之Package ...

  4. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

  5. java获取classpath文件路径空格转变成了转义字符%20的问题

    java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...

  6. java参数传递时到底是值传递还是引用传递

    java参数传递时到底是值传递还是引用传递(baidu搜集) 问”,很多人的BLOG里都引用这些面试题,最近因为工作内容比较枯燥,也来看看这些试题以调节一下口味,其中有一道题让我很费解. 原题是:当一 ...

  7. java中classPath和Xpath问题

    java中classPath和Xpath问题 今天遇到一个问题想获取classpath对应的目录,开始还以为java源代码可以像spring配置文件.xml中一样通过classpath:来获取对应的路 ...

  8. 谈谈Java的classpath

    Java之ClassPath 大家刚开始写Java代码的时候,如果使用Eclipse作为IDE,同时需要引用其他的类库,一般会有如下操作 在工程中新建lib目录 将jar包复制到lib目录下 右键单击 ...

  9. 【转】Java finally语句到底是在return之前还是之后执行?

    网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下final ...

随机推荐

  1. Android 珍藏(二)

    一.如何控制Android  LED等?(设置NotificationManager的一些参数) 代码如下: final int ID_LED=19871103; NotificationManage ...

  2. ionic实现双击返回键退出软件

    1.首先要安装cordova插件:插件地址:cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git ...

  3. ASP.Net 验证控件 CompareValidator

    CompareValidator 作用就是比较两个输入框所输入的值是否一致,常用来作为验证输入密码和确认密码的业务. 属性 描述 Operator 比较操作符,可选值DataTypeCheck.Equ ...

  4. nginx二级域名配置

    CentOs下nginx二级域名配置 域名配置文件 命名规则:XXX.域名信息.conf 配置文件路径:etc/nginx/conf.d/xxxx.conf 配置文件内容:server { liste ...

  5. How Old Are You?

    今天要分享的是一个测年龄的小应用,就类似是http://how-old.net官网测年龄的功能一样,我的也是这样一个功能,细节捕获当然没有how-old多啦,不过这些主要是基于一个第三方的jar包,我 ...

  6. Android-短信验证

    一.mob.com移动开发者服务平台(ShareSDK)的认识 该平台主要是致力于解决移动开发者的实际需求,同时也致力于一些第三方平台的框架支持,那么这样我们可以更方便的将一些功能集成到我们的App中 ...

  7. Linux下用freetds连接mssql中文乱码的问题【参考1】

    由于工作原因我们需要通过php访问我们以前的Sql Server 2005数据,所以就有了这篇文章的诞生.废话就少说了,做程序设计的最不喜欢兜圈子了.用简介步骤说明问题,往下看.系统:   Linux ...

  8. FFT结果的物理意义

    图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低:而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈 ...

  9. 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程

    引用: 智捷课堂携手51CTO学院.图灵教育联合举办iOS线上培训就业班系列体验公开课. 分享移动开发.移动设计方向最新,最热,最抢眼技术热点以及设计经验.我们每周将最少举办一次公开课,同时会提前安排 ...

  10. 一次MVVM+ReactiveCocoa实践

    前言 学习MVVM和ReactiveCocoa(简称RAC)也有一段时间了,不过都仅限于看博客,一直对这两个东西很感兴趣,觉得很创新,也一直想找个机会在项目中实践一下,但是还是有一些顾虑,毕竟没有实践 ...