【发布时间】:2011-01-22 02:01:49
【问题描述】:
我正在使用 NB6.7 为我的项目自动生成可执行 jar 文件,如何以及在何处告诉 NB 将某个资源包含到结果 jar 文件中?我知道如果我将资源放在“lib”目录中,NB 会将其放入“dist/lib/”,但我想要的是将资源 in 包含在最终的可执行 jar 中,其中请注意我要指定吗?
弗兰克
【问题讨论】:
标签: netbeans jar include resources
我正在使用 NB6.7 为我的项目自动生成可执行 jar 文件,如何以及在何处告诉 NB 将某个资源包含到结果 jar 文件中?我知道如果我将资源放在“lib”目录中,NB 会将其放入“dist/lib/”,但我想要的是将资源 in 包含在最终的可执行 jar 中,其中请注意我要指定吗?
弗兰克
【问题讨论】:
标签: netbeans jar include resources
有一种方法可以将任意文件/文件夹添加到 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,但只要项目兼容,它就可以工作。
或者,使用Maven 或Gradle 等自动化项目,让您可以更好地控制构建过程,但代价是自动单文件重新编译等IDE 功能。
【讨论】:
我明白了:将资源文件放在 src 目录中。
【讨论】:
你可以通过......
转到通常位于屏幕左侧的项目名称。
无论您的项目名称是什么,
您必须右键单击它,然后转到它的属性。 [通常在菜单项的末尾]
然后将打开一个窗口,进入图书馆。
在那里你会发现
1)添加项目
2)添加库
3)添加JAR文件
然后包含 jar/Libraries/ 文件夹。
这样它就会自动添加到您的项目中。 它将自动包含在 lib 文件夹中,因此您不必总是包含。
希望对你有帮助,
【讨论】: