Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中获取资源路径之外的文件_Java_File_Io_Classpath - Fatal编程技术网

如何在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
文件的路径。正如您所看到的,在您必须切换到硬编码定义的地方,总是有一些限制。把它放在哪里由你决定。