NetBeans:强制外部类被静态编译成JAR?

时间:2010-06-21 02:10:21

标签: java netbeans jar

我有一个NetBeans项目,它依赖于另一个项目中的一个特定Java类。现在,当NetBeans编译项目时,它只会添加对另一个Java类的引用,这会导致NoClassDefFoundError,因为外部类不在JAR中。

如何强制NetBeans在构建时将该外部文件编译到JAR中,而不是复制并粘贴它?

2 个答案:

答案 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