为什么没有通配类路径为我工作?

时间:2011-06-21 05:25:08

标签: java classpath wildcard

我正在使用JDK 1.6.0.25。我正在尝试包含类似的类路径:

-cp .;Server.jar;Util.jar;../jars/**/*;./lib/*

无论我做什么,这都行不通,我最终不得不明确地引用这些目录中的文件。知道怎么调试这个或者有人知道我做错了吗?

2 个答案:

答案 0 :(得分:3)

请参阅Settings the classpath(“了解类路径通配符”一节)

您不能使用Ant或Bash样式的通配符,只能以“标准”方式使用它。

答案 1 :(得分:2)

来自Java application launcher documentation

  

类路径条目可以包含   basename通配符*,其中   被认为等同于指定   中的所有文件的列表   扩展名为.jar或的目录   .JAR。

请注意,没有提及序列**,它不会被java可执行文件以任何合理的方式解释。您也不能在子目录中递归搜索:

  

不搜索子目录   递归。例如,foo / *看起来   仅适用于foo中的JAR文件,而不适用于   foo / bar,foo / baz等。

换句话说,如果您打算直接从命令行使用通配符,则必须显式指定类路径条目jars../jars/**/*目录的所有子目录。