在Netbeans中构建java项目不包括外部TEXT文件

时间:2014-03-27 14:33:32

标签: java netbeans

很抱歉,如果问题是基本的。我正在尝试构建一个包含文本文件

的java项目
    File file = new File("data/include/foo.txt");

问题是,对于Netbeans,内置和清除操作是完成,而不考虑外部文本文件。 你能帮我解决一下这个问题。

1 个答案:

答案 0 :(得分:1)

在Netbeans中,基本上有两种类型的java项目。一个是使用 ANT 作为构建机器,一个使用 maven

使用ANT构建:

您必须修改或构建build.xml。 Netbeans在其标准build.xml中提供了一些目标,以在构建过程的每个部分触发事件。

为了包含一些额外的资源文件(在您的情况下是一些文本文件),您应该添加build.xml目标,如

<target name="-post-jar">
    <jar destfile="dist/myjar.jar" update="true">
        <fileset dir="${basedir}">
            <include name="data/include/*"/>
        </fileset>
    </jar>
</target>

这意味着在构建JAR之后,还会包含${basedir}/files/*中的文件。

使用MAVEN构建:

Netbeans完全使用Mavens基础设施。所以 Maven 确实有一个标准机制来识别要包含的资源文件。这一切都归结为将这些文件放在项目的特定位置。假设你没有改变maven JAR项目的这个标准目录布局是这样的:

Project
   src
       main
           java
           resources
   ...

因此src/main/resources(包括子文件夹)中的所有文件都会自动包含在您的JAR中。

了解更多here

修改1:

要访问此资源文件,您无法使用File个对象。这是使用类自己的getResource方法完成的:

App.class.getResourceAsStream("data.xml")

App.class.getResource("data.xml")

这里我的班级是App,我的数据文件是data.xml,它与我的班级在同一个目录中。这是相对贴切的。但是如果使用带有标题/的路径,那么您的路径是JAR文件绝对值。详细了解此here