编译应用程序时,我需要指向所有可能的jar文件。像这样:
#javac -cp "WEB-INF/lib/commons-cli-20040117.000000.jar:WEB-INF/lib/slf4j-api-1.7.2.jar" WEB-INF/classes/mypackage/*.java
当我尝试指向包含所有jar的目录时,我找不到任何包:
#javac -cp "WEB-INF/lib" WEB-INF/classes/mypackage/*.java
为什么我不能指向使用-cp的目录?如何强制java编译器读取特定目录中的所有jar?
谢谢,
答案 0 :(得分:2)
javac -cp "WEB-INF/lib/*" WEB-INF/classes/mypackage/*.java
在目录名末尾添加/*
,告诉Java查找该目录中的所有JAR。确保使用引号执行此操作。您不希望shell将*
解释为通配符。您希望将文字*
字符传递给Java。
答案 1 :(得分:-3)
这就是世界的方式。类路径中的目录获取该目录中的所有类,即该jar文件中所有类的命名jar文件。它永远不会包含嵌套在目录或其他jar文件中的jar文件。