为什么我的类路径没有被使用?
How come my classpath isn't being used?
我有projects/plugin/target/mypackage.jar
那我有projects/runner/Runner.java
当我 运行 jar tf mypackage.jar
时,它没有一些 类 它所依赖的。 Runner.java
想import mypackage.MyClass
当我从 runner
文件夹执行 javac -cp '.:../plugin/target/*' Runner.java
时,它会抱怨 MyClass
的某些依赖项不可用。
我的 runner
文件夹包含相应的 JAR 文件。如果我将这些 JAR 文件复制粘贴到 target
文件夹中,编译工作。考虑到我在我的类路径中使用 .
,为什么包不知道在哪里可以找到正确的 JAR?
经过一些建议和恶作剧后,我发现这行得通:
javac -cp './*:../plugin/target/*' Runner.java
.
主要区别是 ./*
而不是 .
如果有人能更好地解释为什么会这样,我很乐意将其标记为答案。
我有projects/plugin/target/mypackage.jar
那我有projects/runner/Runner.java
当我 运行 jar tf mypackage.jar
时,它没有一些 类 它所依赖的。 Runner.java
想import mypackage.MyClass
当我从 runner
文件夹执行 javac -cp '.:../plugin/target/*' Runner.java
时,它会抱怨 MyClass
的某些依赖项不可用。
我的 runner
文件夹包含相应的 JAR 文件。如果我将这些 JAR 文件复制粘贴到 target
文件夹中,编译工作。考虑到我在我的类路径中使用 .
,为什么包不知道在哪里可以找到正确的 JAR?
经过一些建议和恶作剧后,我发现这行得通:
javac -cp './*:../plugin/target/*' Runner.java
.
主要区别是 ./*
而不是 .
如果有人能更好地解释为什么会这样,我很乐意将其标记为答案。