此示例行中'*'
...的含义是什么?
javac -classpath .:classes:/opt/pi4j/lib/'*' ...
答案 0 :(得分:1)
引用通配符*
以阻止shell在您输入命令行时尝试展开它。
但是,根据this page from the Oracle Java documentation,类路径本身可以评估通配符:
类路径条目可以包含基本名称通配符, 这被认为等同于指定所有文件的列表 在扩展名为.jar或.JAR的目录中。例如, 类路径条目foo / 指定名为的目录中的所有JAR文件 FOO。简单地由*组成的类路径条目扩展为所有的列表 当前目录中的jar文件。文件将被考虑 无论它们是否被隐藏(即有名字 以'。'开头。)。
包含*的类路径条目与类文件不匹配。至 将类和JAR文件匹配在一个目录foo中,使用其中一个 foo:foo / *或foo / *:foo。选择的顺序决定了 foo中的类和资源在foo中的JAR文件之前加载,或者 反之亦然。
不会递归搜索子目录。例如,foo / *看起来 对于仅在foo中的JAR文件,而不是在foo / bar,foo / baz等中
如果您根本不理解*
,则需要关注How to Use Wildcards