Я знаком с получением содержимого файла свойств по имени файла, и, очевидно, MyClass.class.getResource ('*. Properties') не будет работать, но как я могу получить список ВСЕХ свойств файлы, расположенные в том же пакете, что и мой класс?
Предполагая, что это не JAR-пакет, вы можете использовать File#listFiles() для этого. Вот пример начала:
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"); } });
Если это JAR-пакет, то вам нужно немного больше кода, чтобы начать с JarFile API . Вы можете найти другой пример в этом ответе .
JarFile
Вы можете делать такие вещи с Spring . Смотри 4. Ресурсы , особенно (или вообще?) (Или принципиально?) (Или главным образом?) На 4.7.2 Подстановочные знаки в путях ресурсов конструктора контекста приложения .
Вот как я это сделал,
Class<? extends Object> clazz = AnyKnownClassInTheJar.class; String classFileName = clazz.getSimpleName() + ".class"; URL classResource = clazz.getResource(classFileName); if (!"jar".equals(classResource.getProtocol())) { // Class not from JAR return; } JarURLConnection classConnection = (JarURLConnection)classResource.openConnection(); JarFile jar = classConnection.getJarFile(); for (Enumeration<JarEntry> i = jar.entries(); i.hasMoreElements();) { JarEntry entry = i.nextElement(); if (entry.getName().endsWith(".properties")) { // Load the property file } }