netbeans - 如何在Netbeans生成的Jar文件中包含资源文件?

标签 netbeans jar include resources

我正在使用 NB6.7 为我的项目自动生成可执行 jar 文件,如何以及在哪里告诉 NB 将某个资源包含到结果 jar 文件中?我知道如果我将资源放在“lib”目录中,NB会将其放入“dist/lib/”中,但我想要的是将资源包含在最终的可执行jar中,其中注意我需要指定吗?

弗兰克

最佳答案

有一种方法可以将任意文件/文件夹添加到 jar 内的任意位置,而无需设置源文件夹。

默认情况下,NetBeans 将创建 build.xml在项目根目录下。 我们可以覆盖 -pre-jar 目标来复制文件,并覆盖 -post-jar 目标来清理。

例如,要将“res/resource.ext”复制到 jar 内的“myres/resource.ext”中,请将这些目标添加到 build.xml 中:

<target name="-pre-jar">
   <!-- Single file -->
   <copy file="res/resoure.ext" todir="${build.dir}/classes/myres" />
   <!-- Folder(s) -->
   <copy todir="${build.dir}/classes/myres"><fileset dir="res"/></copy>
</target>

<target name="-post-jar">
   <delete dir="${build.dir}/classes/myres/resource.ext" />
   <delete dir="${build.dir}/classes/myres"/>
</target>

因为这是 Ant,所以你有很大的控制权。 您可以rename文件,replace文件内容(例如 update 版本或时间戳),convert字符集,或运行 other operations简单的包含是不可能实现的。

我使用的是 NetBeans 版本 8,但只要项目兼容,它就可能工作。


或者,使用自动化项目,例如 MavenGradle ,这使您可以更好地控制构建过程,但需要牺牲自动单文件重新编译等 IDE 功能。

关于netbeans - 如何在Netbeans生成的Jar文件中包含资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352412/

相关文章:

java - 使用 eclipse 导出模块 B 并包含另一个模块 A 时未找到模块

file - NetBeans 7.0 使用 'Download' 命令从服务器随机删除文件

java - 更改 netbeans.conf 后 netbeans 将无法启动

java - 查询不返回输出

c++ - Cmake include_directories()

javascript - 如何处理两个单独文件中的异步?

html - 在 Node.js 中包含 HTML 文件

java - 使用 derby/jpa/tomcat,数据库总是已经启动

java - Archiva/Maven 作为企业存储库

java - 为什么从 .jar 文件运行时没有图像?