Czy istnieje sposób na wykrycie końca fazy ładowania JVM?wykrywa koniec fazy ładowania JVM
edit ::
tak aby dostarczyć nieco więcej kontekstu, co próbuję zrobić, to instrumentu JDK. A to jest pełnowymiarowa oprzyrządowanie, które rejestruje każdą instrukcję kodu bajtowego LOAD, STORE, INVOKE. Gdy instrukcje są wykonywane, ich dane są wysyłane do metody statycznej, która jest ładowana ze ścieżki xbootclasspath. Ta statyczna metoda przechwytuje wszystkie te informacje i przechowuje to wszystko jako ślad do przeprowadzenia analizy w późniejszym czasie.
Teraz, gdy robię to dla JDK, nie chcę przeszkadzać w sposobie ładowania klas w maszynie JVM, co może spowodować awarię programu. Zgadywałem, że najlepszym sposobem, aby to osiągnąć, jest wykrycie momentu, w którym JVM wykonuje ładowanie, aby móc bezpiecznie włączyć moje oprzyrządowanie po tym czasie. (Nie planuję używać żadnego kodu, podczas gdy ładowanie ma miejsce.) Czy to jest nawet właściwy sposób, aby to osiągnąć?
Masz na myśli od wewnątrz jeszcze niezałożonego kodu java? Lub z zewnętrznego programu? czy to do ładowania/profilowania? –
Ponieważ JVM jest leniwym ładowaniem, nigdy tak naprawdę nie występuje. Możesz mieć klasy, które są ładowane po raz pierwszy podczas zamykania. –
@PeterLawrey Czy to prawda dla klas podstawowych rt.jar? –