我有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
.
关键区别在于./*
而不是.
如果有人能更好地解释为什么会这样,我很乐意将它们标记为答案。