是否可以动态加载包中包含的所有属性文件?即MyClass.class.getResource('*.properties');

Sto*_*ney 5 java properties classpath classloader java-ee

我熟悉在给定文件名的情况下获取属性文件的内容,显然MyClass.class.getResource('*.properties')不起作用,但是如何获取所有属性文件的列表与我班级相同的包裹?

Bal*_*usC 6

假设它不是JAR打包的,你可以使用File#listFiles()它.这是一个启动示例:

String path = MyClass.class.getResource("").getPath();
File[] propertiesFiles = new File(path).listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return name.endsWith(".properties");
    }
});
Run Code Online (Sandbox Code Playgroud)

如果它是JAR打包的,那么你需要更多的代码,从JarFileAPI开始.您可以在此答案中找到另一个示例.


Ist*_*tao 3

你可以用Spring来做这些事情。请参阅4. 资源,特别是(或值得注意?)(或主要?)(或主要?),位于4.7.2 应用程序上下文构造函数资源路径中的通配符