我有一个NetBeans项目,它依赖于另一个项目中的一个特定Java类。现在,当NetBeans编译项目时,它只会添加对另一个Java类的引用,这会导致NoClassDefFoundError,因为外部类不在JAR中。
如何强制NetBeans在构建时将该外部文件编译到JAR中,而不是复制并粘贴它?
答案 0 :(得分:1)
我认为你正在尝试创建它通常所说的“胖JAR文件”;即包含应用程序所有必需类的JAR文件。
尝试this forum posting中的食谱。
另一种选择可能是在Ant buld.xml
文件中添加以下内容。
<target name="-post-jar">
<jar update="true" destfile="${dist.jar}">
<zipfileset src="${javac.classpath}"/>
</jar>
</target>
答案 1 :(得分:0)
如果它是基于Maven的,只需使用ant任务在适当的阶段将类复制到目标/类(我猜编译源或类似的东西在test
之前)。
如果它是基于Ant的,那么你必须破解NetBeans的ant构建脚本,这些脚本是每个项目可扩展的。
顺便说一下,标准的方法是让“另一个项目”成为你项目的依赖项。该类可能需要该项目中的另一个类......依此类推。我可能还会建议JDGUI反编译该项目并挑选你需要的类。 http://java.decompiler.free.fr/?q=jdgui