为什么我的类路径没有被使用?

How come my classpath isn't being used?

我有projects/plugin/target/mypackage.jar

那我有projects/runner/Runner.java

当我 运行 jar tf mypackage.jar 时,它没有一些 类 它所依赖的。 Runner.javaimport mypackage.MyClass

当我从 runner 文件夹执行 javac -cp '.:../plugin/target/*' Runner.java 时,它会抱怨 MyClass 的某些依赖项不可用。

我的 runner 文件夹包含相应的 JAR 文件。如果我将这些 JAR 文件复制粘贴到 target 文件夹中,编译工作。考虑到我在我的类路径中使用 .,为什么包不知道在哪里可以找到正确的 JAR?

经过一些建议和恶作剧后,我发现这行得通:

javac -cp './*:../plugin/target/*' Runner.java.

主要区别是 ./* 而不是 .

如果有人能更好地解释为什么会这样,我很乐意将其标记为答案。