Java NetBeans:强制将外部类静态编译到JAR中?
我有一个NetBeans项目,它依赖于另一个项目中的一个特定Java类。现在,当NetBeans编译项目时,它只添加了对另一个Java类的引用,这会导致NoClassDefFoundError,因为外部类不在JAR中Java NetBeans:强制将外部类静态编译到JAR中?,java,netbeans,jar,Java,Netbeans,Jar,我有一个NetBeans项目,它依赖于另一个项目中的一个特定Java类。现在,当NetBeans编译项目时,它只添加了对另一个Java类的引用,这会导致NoClassDefFoundError,因为外部类不在JAR中 我怎样才能在构建外部文件时强制NetBeans将其编译到JAR中,而不是复制和粘贴它呢?如果它是基于Maven的,只需在适当的阶段使用ant任务将类复制到您的目标/类中(我猜是编译源代码之类的-在测试之前) 如果它是基于Ant的,那么您必须破解NetBeans的Ant构建脚本,这些
我怎样才能在构建外部文件时强制NetBeans将其编译到JAR中,而不是复制和粘贴它呢?如果它是基于Maven的,只需在适当的阶段使用ant任务将类复制到您的目标/类中(我猜是编译源代码之类的-在
测试之前)
如果它是基于Ant的,那么您必须破解NetBeans的Ant构建脚本,这些脚本可以在每个项目中扩展
顺便说一句,标准方法是使“另一个项目”成为您项目的依赖项。该类可能需要该项目中的其他类。。。等等
我可能还建议JDGUI对该项目进行反编译,并挑选所需的类 如果它是基于Maven的,只需在适当的阶段使用ant任务将类复制到您的目标/类中(我猜是编译源代码之类的,在测试之前)
如果它是基于Ant的,那么您必须破解NetBeans的Ant构建脚本,这些脚本可以在每个项目中扩展
顺便说一句,标准方法是使“另一个项目”成为您项目的依赖项。该类可能需要该项目中的其他类。。。等等
我可能还建议JDGUI对该项目进行反编译,并挑选所需的类 我认为您正在尝试创建一个通常被称为“胖JAR文件”的文件;i、 e.包含应用程序所需的所有类的JAR文件
试试这个食谱
另一种选择是向Antbuld.xml
文件中添加如下内容
<target name="-post-jar">
<jar update="true" destfile="${dist.jar}">
<zipfileset src="${javac.classpath}"/>
</jar>
</target>
我认为您正在尝试创建一个通常被称为“胖JAR文件”的文件;i、 e.包含应用程序所需的所有类的JAR文件
试试这个食谱
另一种选择是向Antbuld.xml
文件中添加如下内容
<target name="-post-jar">
<jar update="true" destfile="${dist.jar}">
<zipfileset src="${javac.classpath}"/>
</jar>
</target>
它不是。它们是vanilla NetBeans Java项目。vanilla意味着它使用NetBeans内置的基于Ant的构建机制。它不是。它们是vanilla NetBeans Java项目。vanilla意味着它使用NetBeans内置的基于Ant的构建机制。