我试图获取打包为jar文件中的资源的文档的文件路径,以便我可以在swing应用程序中显示它。我从eclipse运行它的方式现在可以工作但如果我将它导出到一个可运行的jar文件,我就无法访问jar文件中打包的文件。如何在jar文件中获取文档的文件路径?
以下是显示我如何尝试访问该文档的代码行:
File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath());
答案 0 :(得分:3)
JAR文件中存在的唯一类型的“文件路径”是相对于JAR根目录的路径。但在你的情况下,似乎你已经知道它(它是“/resources/documents/document.pdf”)。 JAR文件中的文件没有可用于直接访问它们的路径,因为它们在真实文件系统中不存在。您需要使用getResource()或getResourceAsStream()来访问它们。我现在不记得在Swing中哪些类用于图像,但仔细查看这些类 - 它们应该重载方法,接受类似InputStream或URL而不是文件路径。