【问题标题】:NetBeans: Force external class to be statically compiled into JAR?NetBeans:强制外部类静态编译成 JAR?
【发布时间】:2010-06-21 11:02:13
【问题描述】:

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

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

【问题讨论】:

  • 不是。它们是普通的 NetBeans Java 项目。
  • Vanilla 意味着它使用 NetBeans 内置的基于 Ant 的构建机制。

标签: java netbeans jar


【解决方案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>

【讨论】:

    【解决方案2】:

    如果它是基于 Maven 的,只需使用 ant 任务在适当的阶段将类复制到您的目标/类(我猜是 compile-sources 之类的 - 在test 之前的东西)。

    如果它是基于 Ant 的,您必须破解 NetBeans 的 ant 构建脚本,这些脚本是可针对每个项目进行扩展的。

    顺便说一句,标准方法是使“另一个项目”成为您项目的依赖项。该类可能需要该项目中的其他类...等等。

    我可能还会推荐 JDGUI 来反编译该项目并挑选您需要的类。 http://java.decompiler.free.fr/?q=jdgui

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 2012-07-03
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多