java - 类路径中的多个 jar 不起作用

标签 java command-line jar java-6

我在 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 wildcardsJava SE 6 documentation .

关于java - 类路径中的多个 jar 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8328393/

相关文章:

android - 在 eclipse 中转换为 dalvik 格式失败,出现错误 1(添加 gnu-crypto.jar 时)

java - 一种三维数据结构,用于保存项目之间的位置关系

java - CURL 中的 -u 是什么意思以及如何使用带有 -u 的restTemplate 来发布请求

java - 类(class) field 限制

java - 我可以从 Eclipse 创建的命令行程序运行吗?

batch-file - 如何使用 FFprobe 从 Webm 中提取持续时间

java - 用于创建繁重对象的多线程 Java 缓存?

c - 如何比较指针与ascii字符?

java - 使用 URL 类加载器执行 jar 文件内容

jar - 使用 Intellij 指定 Artifact 名称