今天好好研究了一下Java的classpath,什么是classpath呢?classpath就是我们输入

java xxx

的时候Java执行环境搜索xxx类文件的路径。指定这个路径有两种方式,第一种是在我的电脑里面设置环境变量classpath或在命令行里面用

set classpath=xxxxxxx

设置,这两个方法的效果是一样的所以归类为第一种(只不过在命令行里面设置的是临时的,仅对此命令窗口有效)

第二种如下:

java -cp ./b xxx

这种方式将在当前目录的b文件夹里面找到xxx.class文件并加载进来。

第一种方法有个需要注意的地方,

set classpath=xxxxxxx

set classpath=xxxxxxx;//这行多了个分号

是不一样的,第二行多了个分号,效果就是让Java执行环境先在xxxxxx目录搜索类文件然后再从当前目录搜索类文件。而没有分号就是让Java执行环境只在xxxxxx目录搜索类文件,如果xxxxxx目录没有搜索的类文件,而当前目录有这个要搜索的类文件,那么依然会报错。

总结一下,当没有在我的电脑里面设置环境变量classpath或在命令行里面用

set classpath=xxxxxxx

设置classpath,或者是没有明确指定-cp选项的时候,Java执行环境仅从当前目录搜索类文件

当两者中有一个设置(指定)时仅从设置(指定)的目录搜索类文件,而不搜索当前目录(如果两者里面没有包含当前目录的话)

若两者同时设置和指定则忽略classpath,只使用-cp选项指定的目录,而不搜索当前目录(如果两者里面没有包含当前目录的话)

总结一下classpath的更多相关文章

  1. 再次思考 classpath 环境变量 等

    f:\aspectj1.8\lib\aspectjrt.jar;.;%JAVA_HOME%\lib;C:\Temp\IBM\SQLLIB\java\db2java.zip;C:\Temp\IBM\SQ ...

  2. web.xml 配置中classpath: 与classpath*:的区别

    首先 classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties s ...

  3. CentOS下配置java环境变量classpath

    一. 需要配置的环境变量1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的bin ...

  4. JAVA基础学习——1.3 关于JAVA环境变量设定 Path,Java_Home,ClassPath

    在安装完JDK以后,要设定JAVA环境变量. 刚接触的时候,我很困惑,这特么什么玩意啊,然后知其然不知其所以然的 按照说明做完了却不知道为什么这么做,这里简单做一些总结说明. 首先,什么是环境变量 环 ...

  5. maven中classpath路径(转)

    前几天看见一个大神总结classpath文章,觉得特别有用.所以,特此转载(http://my.oschina.net/GivingOnenessDestiny/blog/603505) 各种path ...

  6. junit测试,使用classpath和file 加载文件的区别

    用junit测试发现一个问题,怎么加载配置文件?一直都出现这样的错误 ERROR: org.springframework.test.context.TestContextManager - Caug ...

  7. tomcat 自定义classpath(亲自测试)

    因为一直以来使用tomcat和weblogic作为应用服务器为主,最近在升级新中间件的过程中遇到一个问题,我们的web前端应用现在升级是进行全量包升级的,因为现在的系统架构为前端和后端通过rpc框架交 ...

  8. Spring 中classPath:用法

    参考文章地址: http://hi.baidu.com/huahua035/item/ac8a27a994b55bad29ce9d39 http://blog.csdn.net/lushuaiyin/ ...

  9. classpath: VS classpath*:

    同名资源存在时,classpath: 只从第一个符合条件的classpath中加载资源,而classpath*: 会从所有的classpath中加载符合条件的资源 classpath*:需要遍历所有的 ...

  10. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

随机推荐

  1. CF724C: Ray Tracing

    传送门 CF的题质量真心不低,这道题的标准解法(应该)是exgcd,打比赛的时候想到了具体的推导公式了,也意识到了需要用exgcd,但是因为寝室要锁门了(其实就是太弱,就放弃了. 首先很显然,这条线所 ...

  2. spring--基本介绍

    1.1.1  Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由 ...

  3. javascript undefined 和void0

    underfine === void 0 并不完全成立 undefined不是关键字  不是保留字   在IE低版本下可以被赋值 所以代码中一般以void 0 代替undefined

  4. BZOJ4445: [Scoi2015]小凸想跑步

    裸半平面交. 记得把P0P1表示的半平面加进去,否则点可能在多边形外. #include<bits/stdc++.h> #define N 100009 using namespace s ...

  5. sql 查询每月的销售金额

    sql 数据分月统计,表中只有每天的数据,现在要求求一年中每个月的统计数据(一条sql) SELECT   MONTH (  那个日期的字段  ),   SUM(  需要统计的字段, 比如销售额什么的 ...

  6. IIS Express 外部访问

    http://blog.csdn.net/zhangjk1993/article/details/36671105

  7. Deep Learning in a Nutshell: History and Training

    Deep Learning in a Nutshell: History and Training This series of blog posts aims to provide an intui ...

  8. php----显示中文乱码的问题

    条件: 在显示页面设置页面编码格式为<?php header('Content-Type: text/html; charset=utf-8');?>: 在写入数据库时设置:mysql_q ...

  9. Unity Serialization

    http://forum.unity3d.com/threads/serialization-best-practices-megapost.155352/ http://docs.unity3d.c ...

  10. Tomcat服务器原理详解

    [目录]本文主要讲解Tomcat启动和部署webapp时的原理和过程,以及其使用的配置文件的详解.主要有三大部分: 第一部分.Tomcat的简介和启动过程 第二部分.Tomcat部署webapp 第三 ...