在java 6之前,如果我们的应用依赖多个jar包,通常是将所有jar包文件枚举设置到环境变量CLASSPATH或者命令行参数-classpath(-cp)中。通常我们需要写一段shell脚本实现该功能。这种方式带来的问题是命令行较长。另外在windows平台下命令行的长度是有限制(http://support.microsoft.com/kb/830473/en-us)的,这导致各种奇怪的解决方案(比如缩短jar包名称、自己实现classloader等)。

从java 6开始,我们可以在CLASSPATH环境变量或-classpath(-cp)参数中使用通配符指定多个jar包:

  • 通配符只支持*,foo/*匹配foo目录下所有以.jar或.JAR结尾的文件;
  • 如果foo目录中既有class文件又有jar文件,则只能使用foo;foo/*或foo/*;foo的方式指定。foo表示匹配foo目录下所有class文件(这和java 6以前的规则一样);
  • 通配符不支持子目录递归匹配;
  • 使用通配符匹配的jar包,其顺序是不确定的。应用程序不应该依赖于jar包加载次序;
  • 通配符的解析是在main入口调用之前进行的(这意味着main类可以放到通配符匹配的某个jar包中)。含通配符的类路径解析完成后,完整的类路径将设置到系统属性java.class.path中(可以通过System.getProperty方法获取),通过检查该属性可以获知展开后的真实类路径;
  • jar包的menifest文件中的属性Class-Path不支持通配符;

http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html

Java 6中类路径ClassPath对通配符的支持的更多相关文章

  1. java类路径classpath和包

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

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

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

  3. java类路径classpath

    java编译器编译.java文件和java虚拟机执行.class文件时的路径和写法不一样. 在没有设置任何classpath环境变量的情况下,javac可以编译全路径的.java文件.例如: java ...

  4. Java的Package和Classpath

    Package 在Java中,Package是用来包含一系相关实例的集合.这些相关联的实例包括:类.接口.异常.错误以及枚举. Package主要有一些的几点作用: Package可以处理名字冲突,在 ...

  5. paip兼容windows与linux的java类根目录路径的方法

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

  6. Java中的路径问题

    Java中的路径问题 代码说明,如下: package com.merlin.test; import java.io.InputStream; public class Test { public ...

  7. java web项目 。classpath 文件解析

    eclipse工程中.classpath文件含义: 下面是一个.classpath文件内容: < ?xml version="1.0" encoding="UTF- ...

  8. java 使用相对路径读取文件

    java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构:  DecisionTree            |___src      ...

  9. Java的绝对路径和相对路径

    Java的绝对路径和相对路径 参考:http://blog.csdn.net/u011225629/article/details/46872775 1. 绝对路径 以根部件开始的路径是绝对路径,比如 ...

随机推荐

  1. [luoguP1072] Hankson 的趣味题(数论)

    传送门 由题意得 gcd(x, a0) = a1 ——> gcd(x / a1, a0 / a1) = 1 lcm(x, b0) = b1 ——> x * b0 / gcd(x, b0) ...

  2. 【BZOJ4199&UOJ131】品酒大会(后缀数组,并查集)

    题意: 两杯“r相似” (r>1)的酒同时也是“1 相似”.“2 相似”.…….“(r−1) 相似”的. n<=300000 abs(a[i])<=10^9 思路:对于i,j两个后缀 ...

  3. YAML/Properties配置文件与Spring Boot(转)

    多年来,Java开发人员依赖于属性文件或xml文件来指定应用程序配置.在企业应用程序中,人们可以为每个环境(如开发,分段和生产)创建单独的文件,以定义相应环境的属性.但是,通过Spring引导,我们可 ...

  4. vsftpd conf 解釋

    Linux中vsFTP位置约定:/usr/sbin/vsftpd ---- VSFTPD的主程序/etc/rc.d/init.d/vsftpd ---- 启动脚本/etc/vsftpd/vsftpd. ...

  5. LintCode-分糖果

    有 N 个小孩站成一列.每一个小孩有一个评级. 依照下面要求.给小孩分糖果: 每一个小孩至少得到一颗糖果. 评级越高的小孩能够得到很多其它的糖果. 需最少准备多少糖果? 您在真实的面试中是否遇到过这个 ...

  6. Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST

    Yocto中能够配置一个Distrbution的License.然后全部的软件包,都须要符合这个license才干够被shipped到image中,假设我们须要使用违反此license的软件包,那么就 ...

  7. POJ 1260-Pearls(DP)

    Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7465   Accepted: 3695 Descriptio ...

  8. HDU 5090 Game with Pearls(二分匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 Problem Description Tom and Jerry are playing a ...

  9. Unity3d中相应各平台Path

    IOS: Application.dataPath :                      Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xx ...

  10. java(JSP)中几种获取项目路径方式

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...