Ich möchte diagnostische Informationen darüber, welche JAXP-Implementierung verwendet wird, und welche JAR-Datei, aus der es geladen wurde, bereitstellen.Wie finde ich heraus, welche JAXP-Implementierung verwendet wird und woher sie geladen wurde?
Eine Möglichkeit, dies zu erreichen, ist in Instanz, zum Beispiel zu erstellen, ein DocumentBuilderFactory
und überprüft dann die Eigenschaften dieser Klasse:
private static String GetJaxpImplementation() {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
Class<? extends DocumentBuilderFactory> c = documentBuilderFactory.getClass();
Package p = c.getPackage();
CodeSource source = c.getProtectionDomain().getCodeSource();
return MessageFormat.format(
"Using JAXP implementation ''{0}'' ({1}) version {2} ({3}){4}",
p.getName(),
p.getImplementationVendor(),
p.getSpecificationVersion(),
p.getImplementationVersion(),
source == null ? "." : " loaded from: " + source.getLocation());
}
Gibt es einen besseren Weg, dies zu erreichen, vielleicht ohne um eine DocumentBuilderFactory
zu erstellen?
Welche BTW seit 8u40 veraltet ist, können Sie überprüfen, ob es noch mit '-XX verwendet wird: + CheckEndorsedAndExtDirs'. – eckes