我使用以下代码在项目包内创建了一个文件:
File xmlFile = new File("src/com/company/project/xml/tags.xml");
我能够在从 Eclipse 运行时读取该文件。但是,创建 .jar 后,我无法读取该文件。所以我想在从项目包中读取文件时输入绝对路径。怎样才能做到呢?感谢帮助和建议。
最佳答案
在大多数情况下,IDE 在生成的 Jar 中不会包含任何 Java 文件。当您从其中运行/调试程序时,大多数 IDE 还会在类路径中包含 src
目录。
作为一般经验法则,切勿在任何路径中包含 src
,一旦程序构建,src
将根本不存在。
相反,您需要根据您的需要使用 Class#getResource
或 Class#getResourceAsStream
。您应该记住,您永远不应该将“嵌入”资源视为文件
,因为在大多数情况下不会如此,它将是 zip 文件中的字节流。
类似...
URL xmlFile = getClass().getResource("/com/company/project/xml/tags.xml");
将返回对资源的URL
引用。请记住,如果您需要 InputStream
,则必须 Class#getResourceAsStream
。
如果您希望资源可写,那么您将需要找到一个不同的位置来存储它,因为嵌入式资源是只读的
关于java - 项目包内文件的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35099268/