【问题标题】:What is the special meaning of '*' in a Java class path?Java类路径中'*'的特殊含义是什么?
【发布时间】:2015-09-21 11:53:44
【问题描述】:

此示例行中'*' ... 的含义是什么?

javac -classpath .:classes:/opt/pi4j/lib/'*' ...  

【问题讨论】:

    标签: linux shell command-line command


    【解决方案1】:

    引用通配符* 是为了在您输入命令行时阻止shell 尝试扩展它。

    但是,根据this page from the Oracle Java documentation,类路径本身可以评估通配符:

    类路径条目可以包含基本名称通配符, 这被认为等同于指定所有文件的列表 在扩展名为 .jar 或 .JAR 的目录中。例如, 类路径条目 foo/ 指定目录中的所有 JAR 文件名为 富。仅由 * 组成的类路径条目扩展为所有 当前目录下的jar文件。文件将被考虑 无论它们是否隐藏(即有名称 以'.'开头)。

    包含 * 的类路径条目将不匹配类文件。至 匹配单个目录 foo 中的类和 JAR 文件,使用任一 foo:foo/* 或 foo/*:foo。选择的顺序决定了 foo 中的类和资源在 foo 中的 JAR 文件之前加载,或者 反之亦然。

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

    如果你完全不了解*,那么你需要关注How to Use Wildcards

    【讨论】:

      猜你喜欢
      • 2018-02-15
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      相关资源
      最近更新 更多