java之classpath到底是什么
如果你输入一个命令,比如
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到底是什么的更多相关文章
- Java 基础 - CLASSPATH 到底是什么
关于JAVA项目中CLASSPATH路径详解 https://www.cnblogs.com/hibou/p/8324276.html java项目中的classpath到底是什么 https://s ...
- Java finally语句到底是在return之前还是之后执行(JVM字节码分析及内部体系结构)?
之前看了一篇关于"Java finally语句到底是在return之前还是之后执行?"这样的博客,看到兴致处,突然博客里的一个测试用例让我产生了疑惑. 测试用例如下: public ...
- java classpath import package 机制 @Java的ClassPath, Package和Jar
java classpath import package 机制 從一個簡單的例子談談package與import機制 基本原則:為什麼需要將Java文件和類文件切實安置到其所歸屬之Package ...
- java 获取classpath下文件多种方式
java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...
- java获取classpath文件路径空格转变成了转义字符%20的问题
java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...
- java参数传递时到底是值传递还是引用传递
java参数传递时到底是值传递还是引用传递(baidu搜集) 问”,很多人的BLOG里都引用这些面试题,最近因为工作内容比较枯燥,也来看看这些试题以调节一下口味,其中有一道题让我很费解. 原题是:当一 ...
- java中classPath和Xpath问题
java中classPath和Xpath问题 今天遇到一个问题想获取classpath对应的目录,开始还以为java源代码可以像spring配置文件.xml中一样通过classpath:来获取对应的路 ...
- 谈谈Java的classpath
Java之ClassPath 大家刚开始写Java代码的时候,如果使用Eclipse作为IDE,同时需要引用其他的类库,一般会有如下操作 在工程中新建lib目录 将jar包复制到lib目录下 右键单击 ...
- 【转】Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下final ...
随机推荐
- 如何将你自己的Python package发布到PyPI上
零.前言 最近做了一个小工具,查询IP或者域名的归属地.做完之后想发布到PyPI上,这样大家就可以通过pip来安装了. 在发布的过程中遇到了一些问题,也学到了很多东西.记录到这篇文章中.希望对大家有所 ...
- MySQL 中随机抽样:order by rand limit 的替代方案
最近由于需要大概研究了一下MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RA ...
- 在centos中创建nginx启动脚本
1. 建立脚本文件nginxd [root@could]# vi /etc/init.d/nginxd 插入以下内容 #!/bin/bash## chkconfig: - 85 15# descrip ...
- Evaluation
precision是tp/(tp+fp),检索结果中正确的比例 recall是tp/(tp+fn),所有需要被检索出来的比例 1.真实情况:恶性,检查结果:恶性,这种情况就叫做:true positv ...
- html+css--水平居中总结(不定宽块状元素方法)(一)
来源:http://www.imooc.com/code/6363 在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度 ...
- SqlServer知识总结
SqlServer查询表的列数 select count(*) from sysobjects a join syscolumns b on a.id=b.id where a.name='表名' 在 ...
- jQuery - 中文輸入法與KeyDown/KeyPress事件
最近專案中引用了Telerik ASP.NET擴充元件AutoComplete輸入欄位,測試時發現偶爾會不聽始喚,輸入文字時無法觸發資料查詢,在Javascript Source Code裡反覆追蹤測 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- 多任务(二)
VxWorks的系统任务 VxWorks在引导时启动的系统任务依赖于配置,有些总是运行.任务集与VxWorks的基本配置相关,很少的任务常用于可选的组件. 注意:别挂起.删除或改变任何系统任务的优先级 ...
- OC3_协议关键字
// // Student.h // OC3_协议关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangx ...
- 8款唯美设计的HTML5/CSS3应用
1.CSS3漂亮的自定义Checkbox复选框 9款迷人样式 今天我们来分享一款9款样式迷人的CSS3漂亮的自定义Checkbox复选框.这几款复选框样式很丰富,使用起来也比较方便. 在线演示 源码下 ...