如何引用不在 Jar 文件中的资源?
How to reference resources not within the Jar file?
我有一个 Java 项目使用了一些资源文件。我想将项目捆绑到一个 jar 文件中,但我仍然需要能够引用资源文件。我不希望将这些资源捆绑到 jar 中,因为最终用户需要能够对它们进行更改。
那么有没有办法让jar文件在包含jar的目录中查找资源呢?不在罐子里?
所以像下面这样,jar 文件指的是资源目录中包含的文件:
C:/MyDirectory/
|- project.jar
|- resources/
|- resourceFile.txt
String myGreatResourceLocation = "c://MyDirectory/resources/resourceFile.txt";
java.nio.file.Path myGreatResource = java.nio.file.Paths.get( myGreatResourceLocation );
因此您可以使用 java.nio.file.Files.readAllLines()
访问资源的数据,还有其他可用的方法。如果您只是为了获取字符串而阅读,readAllLines()
会很棒,因为它允许您指定字符集,这将使您免于以后的麻烦。
但是请注意,如果有人将您的 jar 文件用于 Web 应用程序,它通常无法读取您的数据(您必须检查您的 Web 或应用程序服务器的文档)
我有一个 Java 项目使用了一些资源文件。我想将项目捆绑到一个 jar 文件中,但我仍然需要能够引用资源文件。我不希望将这些资源捆绑到 jar 中,因为最终用户需要能够对它们进行更改。
那么有没有办法让jar文件在包含jar的目录中查找资源呢?不在罐子里?
所以像下面这样,jar 文件指的是资源目录中包含的文件:
C:/MyDirectory/
|- project.jar
|- resources/
|- resourceFile.txt
String myGreatResourceLocation = "c://MyDirectory/resources/resourceFile.txt";
java.nio.file.Path myGreatResource = java.nio.file.Paths.get( myGreatResourceLocation );
因此您可以使用 java.nio.file.Files.readAllLines()
访问资源的数据,还有其他可用的方法。如果您只是为了获取字符串而阅读,readAllLines()
会很棒,因为它允许您指定字符集,这将使您免于以后的麻烦。
但是请注意,如果有人将您的 jar 文件用于 Web 应用程序,它通常无法读取您的数据(您必须检查您的 Web 或应用程序服务器的文档)