在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. noip模拟赛 柜(暴力)

    分析:暴力的方法是非常显然的,从起点走一次,从终点走一次,路径相交的点即为所求,但是这样存图都很难存下,而且如果数据极端可能要求R*C次,时间空间都受不了.如果不需要记录整张图,并且一次能移动很多步就 ...

  2. UIColor用自定义颜色,TableView去掉背景色

    1.用mac系统自带的数码测色计,选RGB模式,将值添加到ColorWithRed:xxx.0/255 最后的alpha选1.0 2.TableView的背景色要用setBackgroundView的 ...

  3. - > 贪心基础入门讲解五——任务执行顺序

    分析: 本题可以抽象成,从一个整数开始,每次减去a,再加上b (a,b都是正数),要求每次操作都不产生负数. 针对本题a[i] = R[i], b[i] = R[i] – O[i],注意O[i] &l ...

  4. WeixinJSBridge 微信

    <!DOCTYPE html> <html> <head><title>微信WeixinJSBridge API</title> <m ...

  5. AE 创建

    using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF; usi ...

  6. Java Web开发基础(1)-Servlet

    概述 Servlet技术是对webserver的扩展,要理解这个,可能先了解一下什么是Webserver以及它的功能,特别是它的不足是非常有帮助的,可參考:点击打开链接.另外.Servlet也是一个用 ...

  7. apache在windows下的命令安装与报错解决

    1.在windows下能够通过执行apache的exe文件就能够,但当我们打包的时候,就须要命令来安装apache.apache在windows下用命令下的安装为: apache.exe -k ins ...

  8. POJ 3221 Diamond Puzzle.

    ~~~~ 题目链接:http://poj.org/problem? id=3221 显然是BFS找最优解.但是终止条件不好写.看到有一仅仅队交上去一直TLE. 比赛完了看题解原来是以目标状态为起点,B ...

  9. ASP.NET_SessionId vs .ASPXAUTH why do we need both of them?

    https://stackoverflow.com/questions/23758704/asp-net-sessionid-vs-aspxauth-why-do-we-need-both-of-th ...

  10. C# 学习笔记 三层架构系列(控件一)

    下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...