把外部库放到JAR上?

我已经在我的java项目中添加了一些外部库(在netbeans中)。
是否可以将外部jar库放到java存档中(而不是将它们放入单独的(例如)“lib”目录中)?

当然可以。 有一些开源项目可以使用包含所有依赖项的“bundle jar”下载。
您需要提取所有jar子然后将它们再次装到一个文件中。
这里可以看到使用Ant执行此操作的示例。

JarJar项目允许您将依赖jar包打包到一个jar文件中进行分发。

该项目提供了一个执行打包的ant任务,而netbeans项目使用Ant进行构建过程,您应该能够非常轻松地将它集成到您​​的构建中。

是的,这是可能的,生成的jar实际上被称为“uberjar”或“megajar”。 基本上,要创建一个“uberjar”,你需要提取外部库的内容(使用jar -x )并在你自己的jar中重新打包(使用jar -c )。 这可以通过手工实现,或者使用像Ant这样的构建工具(以及像One-JAR这样的项目的可选支持)或通过maven-assembly-plugin(或maven-shade)内置支持的Maven实现。 -插入)

如果您使用的是Maven,可以考虑使用Maven shade插件或程序集插件。

如果是将jar子装入jar子,这对于战争或耳朵文件中的网络应用程序来说总是如此。 如果您的应用程序是独立的,您可以解压缩jar并使用Ant jar和unjar任务将它们全部打包在一个生成的jar中: http ://ant.apache.org/manual/Tasks/unzip.html但我不建议这样做这个。

使用内置的ant脚本可以轻松实现。

还有另一个SO问题指向这篇文章: http : //mavistechchannel.wordpress.com/2010/08/17/how-to-build-a-single-jar-file-with-external-libs/

我添加了它,但是这样的菜鸟我不知道如何使用它。 这篇文章有一个很棒的视觉教程。 基本上,在修改你的ant脚本之后,转到文件选项卡(在左边的资源管理器中)=>右键单击xml => run tasks =>其他任务=>存储包(或任何你命名的脚本)