很抱歉,如果问题是基本的。我正在尝试构建一个包含文本文件:
的java项目 File file = new File("data/include/foo.txt");
问题是,对于Netbeans,内置和清除操作是完成,而不考虑外部文本文件。 你能帮我解决一下这个问题。
答案 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。