如果我将一些(例如* .txt)文件加载到我的java应用程序中,我怎么能将它包含到我的最终可执行jar中以使其可移植(意味着如果我将我的jar移动到另一台机器上它不是必需的用它移动这个* .txt文件)?
请注意,我不需要文件本身所需的文件内容。我应该如何从代码中写出这个文件的路径?
String path = "path/to/file/"; //Yeah it should be String
我使用的是IntellijIDEA,我可以将任何文件包含到我的最终jar中,但无法确定放置它的位置。感谢。
答案 0 :(得分:2)
只需将文件放入项目的 src 文件夹即可 - 例如 src / resource / file.txt 。在构建项目时,整个 src 内容将放入生成的jar中。您可以使用以下代码访问您的文件:
this.getClass().getResource("/resource/file.txt");
阅读所有行的示例:
URL url = this.getClass().getResource("/resource/file.txt");
Path path = Paths.get(url.toURI());
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
答案 1 :(得分:0)
您需要类似下面的内容
<target name="somejar" depends="compile">
<jar jarfile="${somejar.jar}">
<fileset dir="${bin.dir}">
<include name="**/*.class"/>
</fileset>
<zipgroupfileset dir="lib" includes="*.jar"/>
<fileset dir="${basedir}">
<include name="config/*.properties"/>
<include name="config/*.txt"/>
</fileset>
</jar>
</target>
这将把所有需要的类和属性文件放在一起。您可以从项目基础编码文件的位置,直到到达文件。