当前位置: 首页 > 知识库问答 >
问题:

如何将lib中的jar包含到NetBeans中的项目jar文件中?

殳毅
2023-03-14

我正在使用一些apache HttpClient jar,所以我把它们放在我的项目的lib目录中,当Netbeans编译项目时,它复制lib并生成一个项目jar到dist目录中,但是当我使用webstart运行项目时,我需要将项目jar和lib复制到Tomcat的根目录中,我想知道Netbeans是否可以生成一个包含lib目录中所有jar的项目jar,这样我就不必将项目jar和lib目录复制到Tomcat的根目录中。Netbeans能做到吗?

共有1个答案

龙毅
2023-03-14

这非常容易将每个依赖库(*.jar)打包到一个MyProject.jar中。

只需遵循这些步骤,您将最终将每个依赖库打包到单个JAR中。如果您使用的是NetBeans,那么您可以完全遵循,否则您需要在项目文件中找到build.xml文件。

按照以下步骤编辑build.xml

1)单击NetBeans中项目面板左侧的files选项卡

2)双击build.xml文件,并在行之前添加这些行

 <target name="package-for-store" depends="jar">
    <property name="store.jar.name" value="myProject"/>
    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
    <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>
    <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
        <zipgroupfileset dir="dist" includes="*.jar"/>
        <zipgroupfileset dir="dist/lib" includes="*.jar"/>
        <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
        </manifest>
    </jar>
    <zip destfile="${store.jar}">
        <zipfileset src="${store.dir}/temp_final.jar"
        excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
    </zip>
    <delete file="${store.dir}/temp_final.jar"/>
</target>

3)根据项目名称更改代码第二行的,该名称为

<property name="store.jar.name" value="myProject"/> //<---Just value not name

4)保存它,右键单击build.xml并选择Run Target,然后选择其他目标,最后单击Package-for-store

5)就这样了。现在你可以去检查一下,就像dist文件夹一样,那里会有一个store文件夹,它将包含最后完整的jar,包括所有依赖的库。现在,无论何时你想要更改/添加更多的库,只要按照步骤4操作即可。

步骤4的图片

 类似资料:
  • 问题内容: 当我运行“清理并生成”时,仅在文件夹位于文件的同一文件夹时,才会运行正在创建的文件。 因此,如果我将jar文件移动到桌面并将该文件夹保留在该文件夹中,则jar文件将给我一个例外。 我该如何解决这个问题? 问题答案: 如果将jars复制到源代码目录中,它们将位于您的最终jar中。但是,我不确定这是否会在100%的时间内有效。 java-forum上有一篇很棒的文章,内容如下: 除了少数情

  • 我正在尝试加入一些。txt。png和其他文件转换为我的jar文件。我在src文件夹下创建了一个名为“resources”的文件夹。从IDE运行程序时,程序可以正确找到所有文件。但是,只要我用代码创建一个jar文件,就找不到任何文件。当然,我使用了getClass()。getResource(…)。 有人能帮我吗?:/

  • 问题内容: 在我的J2EE项目中,我有几个依赖关系,在任何Maven存储库中都不可用,因为它们是专有库。这些库需要在运行时可用,因此必须将其复制到target /…/ WEB-INF / lib … 现在,我在POM中将它们列为系统依赖项,但是使用这种方法的问题是,在编译过程中没有将它们复制到目标版本中。而且这种方法也不是很优雅。 那么将它们集成到Maven中的最佳方法是什么? 注意:我不想创建自

  • 在war中,->不存在“”,但包含所有其他依赖项。

  • 问题内容: 我想从罐子中复制文件。我要复制的文件将被复制到工作目录之外。我已经做过一些测试,所有尝试使用的方法都以0字节文件结尾。 编辑 :我希望通过程序而不是手动完成文件的复制。 问题答案: 首先,我想说的是,之前发布的一些答案是完全正确的,但是我想告诉我,因为有时我们不能在GPL下使用开放源代码库,或者因为我们懒得下载jarXD或其他文件无论您的理由在这里,还是一个独立的解决方案。 下面的函数

  • 问题内容: 我一直在寻找这个问题的解决方案,今天已经花费了多个小时,而昨天已经花费了许多个小时,所以我决定在这里解决,尽管这似乎是一个愚蠢的问题。 情况:我在Eclipse Java EE中设置了Google AppEngine项目。在这里已经有好几个星期了,一切运行正常,我可以部署到App Engine并在Eclipse中进行测试,而不会出现问题。 现在,我需要添加用于fe JSON支持和Goo