我正在尝试使用以下代码读取我的资源文件夹(src / main / resources)下的属性文件名
final String classPath = System.getProperty("java.class.path", ".");
System.out.println(classPath);
上面的代码在桌面应用程序中运行完美的文件,但在System.out.println上面的Web应用程序中给出了这个输出:
/C:/Development/INSTALLED/apache-tomcat-8.0.46/bin/bootstrap.jar
/C:/Development/INSTALLED/apache-tomcat-8.0.46/bin/tomcat-juli.jar
/C:/Program%20Files/RedHat/java-1.8.0-openjdk-1.8.0.151-1/lib/tools.jar
(缺少\ target \ classes)
在桌面应用程序上运行相同的代码时,我成功获取“\ target \ classes”,我可以在其中看到属性文件。
我应该怎么做才能通过classpath读取这些文件的名称?请帮忙。
答案 0 :(得分:0)
最后我通过google relection api解决了这个问题。但我仍然愿意接受其他解决方案。
添加依赖项:
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
Java代码:
Reflections reflections = new Reflections("translation", new ResourcesScanner());
final Set<String> fileNames = reflections.getResources(pattern);