I don't mind, I think it's fine. But I had the same problem like you when I used the Properties class, it always feels bad and some things are not working at all.
This comment in Javadocs for public Set<String> stringPropertyNames() makes me nervous, too:
Returns a set of keys in this property list where the key and its corresponding value are strings, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list. Properties whose key or value is not of type String are omitted.
The returned set is not backed by the Properties object. Changes to this Properties are not reflected in the set, or vice versa.
a set of keys in this property list where the key and its corresponding value are strings, including the keys in the default property list.
This method is available since Java 6, so this would be the "most correct" solution. Retrieve the set, iterate via advanced for-loop and use getProperty(). But that does not work for Lucene 3.x.