当我清理和构建时,Netbeans 为我的 Java 项目生成一个 .jar 文件,它使用一个“lib”文件夹,其中包含我使用的所有外部 Jar 文件。我可以以某种方式告诉 Netbeans 将这些 Jar 文件打包到它制作的 .jar 中吗?这样我就可以将我的项目作为独立的 .jar 文件运行?
我在 Mac OSX 上使用 Netbeans 7.1.1
简短的答案是否定的,长答案很复杂。
首先,Java 不支持嵌入式 Jar(即,您不能简单地将依赖的 Jar 添加到主 Jar 中)。
其次,解压缩所有 Jar 并将它们合并为一个将覆盖任何共享相同路径/名称的资源/类。这在小型项目中可能不是问题,但在大型项目中是一个主要问题(我们在工作中从事的项目存在这个问题)。
一种解决方案是使用类似One-Jar 的东西,它基本上使用它自己的引导类加载器来向所有你引用嵌入在单个 Jar 中的 Jars。
我在使用我们自己的自定义类加载器时遇到了这个问题,但除此之外它似乎运行良好。
它包含 Ant 支持,因此您可以将它包含在您的项目 Ant 构建脚本中,如果您不使用 Maven,否则,您需要设计自己的构建过程
netbeans 中没有选项可以做到这一点。
还有一些其他选项可以快速搜索,但需要手动干预。