如何在Java中获取资源路径之外的文件
我有这个文件夹结构如何在Java中获取资源路径之外的文件,java,file,io,classpath,Java,File,Io,Classpath,我有这个文件夹结构 backend |_dispatcher/ |_executor/ |_syncer/ |_bin/ |_syncer.bat // To execute the jar |_lib/ |_... // Other dependencies |_syncer.jar // Application's jar |_toolbox-resources/ |_repositories.json // File to get sync
backend
|_dispatcher/
|_executor/
|_syncer/
|_bin/
|_syncer.bat // To execute the jar
|_lib/
|_... // Other dependencies
|_syncer.jar // Application's jar
|_toolbox-resources/
|_repositories.json // File to get
syncer模块想要获取repositories.json。我试着按照下面的行来获取这个文件
File file = new File(classloader.getResource("../../../../../toolbox-resources/repositories.json").getFile());
但这会导致在最后出现一个NullPointerException,它告诉我我使用此路径失败
另外,我不喜欢在路径中使用如此多的
/../../../../
装置。难道没有办法为整个应用程序定义其他关系路径吗?或者实现我想要实现的目标的方法是什么?可能是工具资源vs工具箱资源
?感谢您的注意-但这只是这个问题中的一个错误最后一个想法:这可能是一个。
在您的道路上太多了吗?这确实是个问题,我已经用这种方式解决了。但在我看来,这是一种非常硬编码的方式。我正在寻找方便的方法,您可以使用.ini
文件或类似文件来定义资源的位置。但是,您需要在某个地方找到.ini
文件的路径。正如您所看到的,在您必须切换到硬编码定义的地方,总是有一些限制。这取决于你在哪里设置它。它可能是工具资源
还是工具箱资源
?感谢你的注意-但这只是这个问题中的一个错误最后一个想法:它可能是一个。/
在你的道路上太多了吗?它肯定是那个问题,我已经用那种方式解决了它。但在我看来,这是一种非常硬编码的方式。我正在寻找方便的方法,您可以使用.ini
文件或类似文件来定义资源的位置。但是,您需要在某个地方找到.ini
文件的路径。正如您所看到的,在您必须切换到硬编码定义的地方,总是有一些限制。把它放在哪里由你决定。