我在 stackoverflow 上看到了几个非常相似的问题,但没有遇到任何与我的问题完全匹配的问题。我有一个包含多个 .java 文件的文件夹,另一个文件夹包含两个 .jar 文件。我需要在使用 javac 时包含这两个 jar 文件,以便一次性编译整个项目:
$: javac -classpath .:~/myjardir/*.jar ~/myprojectdir/*.java
但是如果我这样做,只有第一个 jar 被识别,而所有依赖于第二个 jar 的东西都会抛出错误。令人惊讶的是,如果我分别编译每个程序,
$: javac -classpath .:~/myjardir/oneofthejars.jar ~/myprojectdir/file1.java
然后一切正常。我还在 Eclipse 中单独编译了项目,只是为了测试代码和 jars。只有当我尝试在命令行中将这两个 jar 与 -classpath
一起使用时,我才会收到错误。通配符条目应该在 JDK6 中工作,所以我在这里不知所措。
最佳答案
类路径通配符不像在 Unix shell 中那样工作。 *
表示目录中名为*.jar
的所有内容。所以你不需要做 *.jar
而只是 *
。以下应该做你想做的:
$: javac -classpath .:~/myjardir/* ~/myprojectdir/*.java
参见 Understanding class path wildcards在Java SE 6 documentation .
关于java - 类路径中的多个 jar 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8328393/