我有一个文件users.txt
,文件路径为myPlugin/impl/src/main/resources/myPlugin/impl/src/main/java/com/company/myPlugin/impl/users.txt
。我试图从文件路径为myPlugin/impl/src/main/java/com/company/myPlugin/impl/UserManager
的Java类访问此文件。我不想硬编码路径,因为工作目录会改变。我试过了:
String path = System.getProperty("user.dir") + .....path to users.txt;
这个问题是它只在我本地运行插件时才有效。当它部署在另一台机器或服务器上时,工作目录不会包含所有文件。我真正需要的是一种仅使用myPlugin
的相对路径打开文件的方法。我也试过
URL path = getClass.getResource("");
然后添加了剩下的路径,但这也没有用。是否甚至可以仅使用不依赖于当前工作目录的相对路径?当我在服务器上运行我的插件时,工作目录不包含源代码或目录结构。
答案 0 :(得分:1)
文件位置由两部分组成:myPlugin/impl/src/main/resources/
和users.txt
。第一个是构建系统(Maven)找到资源的位置。第二个是你的实际资源。
myPlugin/impl/src/main/resources
下的所有(文件和目录)都将被复制到您的类路径中。
要回答您的问题,您的文件应该可以通过
访问getClass().getClassLoader().getResource("users.txt");