项目包中文件的绝对路径

时间:2016-01-30 07:28:57

标签: java file jar path absolute

我已使用以下代码在项目包中创建了一个文件:

File xmlFile = new File("src/com/company/project/xml/tags.xml");

我可以在从eclipse运行时读取文件。但是,在创建.jar之后,我无法读取该文件。所以我想在从项目包中读取文件时放置绝对路径。怎么做?感谢帮助和建议。

2 个答案:

答案 0 :(得分:1)

在大多数情况下,IDE将在生成的Jar中不包含Java文件。当您从其中运行/调试程序时,大多数IDE还会在类路径中包含src目录。

作为一般经验法则,永远不要在任何路径中包含src,一旦构建程序,src就不会存在。

相反,您需要根据自己的需要使用Class#getResourceClass#getResourceAsStream。你应该记住,你永远不应该对待"嵌入式"资源为File,因为在大多数情况下它不会是,它会成为zip文件中的字节流。

像...一样的东西。

URL xmlFile = getClass().getResource("/com/company/project/xml/tags.xml");

将返回对资源的URL引用。请注意,如果您需要InputStream,则必须Class#getResourceAsStream

如果您希望资源可写,那么您需要找到一个不同的位置来存储它,因为嵌入式资源是只读的

答案 1 :(得分:0)

尝试使用getClass().getResource()

new File(getClass().getResource("src/com/company/project/xml/tags.xml").toURI());