我已使用以下代码在项目包中创建了一个文件:
File xmlFile = new File("src/com/company/project/xml/tags.xml");
我可以在从eclipse运行时读取文件。但是,在创建.jar之后,我无法读取该文件。所以我想在从项目包中读取文件时放置绝对路径。怎么做?感谢帮助和建议。
答案 0 :(得分:1)
在大多数情况下,IDE将在生成的Jar中不包含Java文件。当您从其中运行/调试程序时,大多数IDE还会在类路径中包含src
目录。
作为一般经验法则,永远不要在任何路径中包含src
,一旦构建程序,src
就不会存在。
相反,您需要根据自己的需要使用Class#getResource
或Class#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());