我有一个具有这种结构的基于 gradle 的 java 项目
.
├── myproject
│ ├── src
│ | └── main
│ | ├── java
│ | └── resources
│ | └── myresource.xml
| ├── build
| | ├── classes
| | | └── main
│ | | └── myresource.xml
| | ├── resources
我正在尝试访问中的一些文件资源使用类加载器的文件夹,像这样
ClassLoader.getSystemClassLoader().getResoure("/myresource.xml");
但它没有找到该文件。
我发现访问这些文件的唯一方法是探索项目的已知结构
Path resourcesPath= FileSystems.getDefault().getPath(System.getProperty("user.dir"), "/src/main/resources/");
知道我做错了什么吗?
好吧,看来我的困难来自另一个问题(资源没有被复制到正确的位置)。一旦我解决了这个问题,类加载器就能够使用以下两种形式之一找到我的资源:
ClassLoader.getSystemClassLoader().getResource("./myresource.xml");
ClassLoader.getSystemClassLoader().getResource("myresource.xml");
Edit:当使用其他应用程序中嵌入的jar时,前一种解决方案不起作用,在这种情况下使用:
Thread.currentThread().getContextClassLoader().getResource("myresource.xml")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)