所以我用main方法编写了一个类,它依赖于另一个依赖于许多jar文件的jar文件。为了简单起见,我使用了One-JAR并创建了一个可执行jar。 我创建的罐子很好,我能够运行它:
java -jar foo.jar
这成功执行我的主应用程序。
接下来,我在Eclipse中创建了一个新项目,并通过“添加外部jar”将foo.jar添加到构建路径中(我一直这样做并且它始终有效)。出于某种原因,在我的Eclipse项目中,它抱怨它无法识别从foo.jar导入的包。
我查看了之前关于Eclipse的jar问题的问题但没有帮助。我怀疑它与One-Jar创建的树有关,但由于命令行中的“java -jar foo.jar”工作正常,我不明白为什么Eclipse没有看到类文件。
谢谢!
更新: 以下是One-Jar创建的foo.jar的样子:
META-INF OneJar.class com doc lib main
在主要内部:
main main.jar
将main应用程序的包树与.class文件相关联。现在,如果我在Eclipse中包含“main.jar”,它确实识别我的应用程序。但是它不能识别lib /下的其他依赖项,因此它会抛出运行时异常。
更新2: 所以One-jar和Eclipse的问题没有解决,但有人提到了胖jar Eclipse插件,所以我尝试了它,它完美地完成了这项工作。它生成的jar可以与Eclipse和Maven一起使用。它们实际上也支持One-Jar,你可以在创建jar时检查One-Jar选项。我没有使用它,但它在那里(如果它工作,它实际上值得使用,因为它应该处理库冲突)。 谢谢您的帮助。
答案 0 :(得分:0)
Eclipse不会理解jar中的jar。最好将其他jar包括在内以分别构建路径。