У меня есть библиотека foo.jar
, которая содержит файл svnversion.properties
(просто выглядит как svnversion=12345M
или любой другой) и следующий статический метод в class SVNVersion
:
public static SVNVersion fromString(String s) { ... }
public static SVNVersion fromResources(Class<?> cl) {
ResourceBundle svnversionResource = ResourceBundle.getBundle(
"svnversion", Locale.getDefault(), cl.getClassLoader());
if (svnversionResource.containsKey("svnversion"))
{
String svnv = svnversionResource.getString("svnversion");
return fromString(svnv);
}
else
{
return null;
}
}
У меня также есть библиотека bar.jar
, которая также содержит файл svnversion.properties
(скажем, он содержит svnversion=789
).
Однако, когда я запускаю следующее в class SomeClassInBarJar
, которое находится в bar.jar
:
SVNVersion vfoo = SVNVersion.fromResources(SVNVersion.class);
SVNVersion vbar = SVNVersion.fromResources(SomeClassInBarJar.class);
и я печатаю результат, я вижу 789
дважды. Очевидно, я не делаю это правильно. Как получить правильный файл svnversion.properties
в корне файла JAR, содержащего данный класс? (предполагая, что это там)
редактировать: я только что попробовал
InputStream is = cl.getResourceAsStream("/svnversion.properties");
и у него та же проблема. Кажется, я могу получить доступ только к основному файлу jar /svnversion.properties
, а не к библиотеке /svnversion.properties
.