nie mogłem znaleźć jasnej odpowiedzi na to pytanie gdzie indziej, więc spróbuję tutaj:Jak znaleźć, które słoiki i w jakiej kolejności są ładowane przez program ładujący klasy?
Czy jest jakiś sposób (programowy lub inny), aby uzyskać listę słoiki/klas załadowane przez classloader aplikacji w określonym aby zostały załadowane? Przez Application Classloader mam na myśli program ładujący klasy, który ładuje aplikację EAR na serwerze aplikacji (WLS, WAS, JBoss ...), ale oczywiście dotyczy każdego programu ładującego klasy.
Tak więc, aby uogólnić, chciałbym się dowiedzieć, jaka jest lista i kolejność JARów załadowanych przez określony program ładujący klasy. Nie pojedynczych klas, które można łatwo znaleźć, wywołując metodę classloader.getPackages(), ale listę plików JAR załadowanych przez ten program ładujący klasy.
Dzięki, kdgregory. Jest to podejście, które w końcu wykorzystałem - w zasadzie napisałem narzędzie, które rozumie hierarchię programu ładującego klasy w środowisku wykonawczym i wysyła zapytanie do każdego programu ładującego klasy, jaka lista zasobów została załadowana przy użyciu metody getURLs(), jeśli jest dostępna. Udało się to dobrze zarówno dla WLS, jak i WAS. W przypadku WLS, ich własne programy ładujące klasy nie rozszerzają URLClassloader, ale mają inną metodę, getClassPath(), która zwraca uporządkowaną listę pozycji klasy classpath. I wszystkie programy ładujące klasy WAS wydają się rozszerzać URLClassloader, więc getURLs() działało bez zarzutu. Nie próbowałem jeszcze tego na JBoss. Marina – Marina