2012-10-26 124 views
0

当我进行清理和构建时,Netbeans为我的Java项目生成一个.jar文件,并使用包含我使用的所有外部Jar文件的“lib”文件夹。我能否告诉Netbeans将这些Jar文件打包到它所创建的.jar文件中?这样我可以将我的项目作为独立的.jar文件运行?Netbeans生成.jar文件

我使用NetBeans 7.1.1在Mac OSX

+0

http://stackoverflow.com/问题/ 2212913/netbeans-deploy-all-in-one-jar –

回答

1

简短的答案是否定的,长的答案是复杂的。首先,Java不支持嵌入式Jars(即,不能简单地将依赖Jars添加到主Jar中)。

其次,解压所有Jars并将它们合并为一个将覆盖共享相同路径/名称的任何资源/类。这在小项目中可能不是问题,但是在大项目中是一个主要问题(我们在工作中正在进行的项目中存在此问题)。

一个解决方案是使用类似One-Jar的东西,它基本上使用它自己的引导类加载器来引用所有嵌入到单个Jar中的Jars。

我在使用我们自己的自定义类加载器时遇到了这个问题,但是在其他方面它似乎工作正常。

它包含了Ant的支持,所以如果你不使用Maven,你可以在你的项目Ant构建脚本包含它,否则,你需要制定自己的编译过程

+0

那么.jar文件如何知道从哪里获取正确的驱动程序?是.jar文件外强制使用的“lib”文件夹? – CodeGuy

+0

类加载器用于查找相关类的主jar清单文件内有一个class-path属性。查看[使用清单文件](http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html)了解更多详情 – MadProgrammer

0

有在NetBeans没有选择这样做。

还有一些其他选项可以帮助快速搜索,但需要手动干预。