рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред

рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╣ рдХреЗ, рдЬреЛ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
public static void main(String[] args) 
рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ java HelloWorld рдЬреИрд╕реА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред
рд▓реЗрдХрд┐рди рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдХреЗ рднреАрддрд░ рдЙрд╕ рд╕рдордп рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрдХ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдХреИрд╕реЗ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ? рдПрдХ рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджрди рдХрд╛рд░реНрдп рдиреЗ рд▓реЗрдЦрдХ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ред рдмрд┐рд▓реНрд▓реА рдХреЗ рддрд╣рдд рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдоред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд▓реЗрдЦ рд╕рднреА рдореМрдЬреВрджрд╛ JVM рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХрд╛ рдвреЛрдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ Sun HotSpot JVM рдкрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рдПрдХ рдмрдврд╝рд┐рдпрд╛ рджрд┐рди, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдЙрд╕рдХрд╛ рдЖрд╡реЗрджрди рдХрд┐рди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдерд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдирд╕реНрд▓реАрдп рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдХреЛрдб рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрдлреЛрдЯрдХ рдорд┐рд╢реНрд░рдг рдерд╛, рдЬреЛ рд╡рд┐рд░рд╛рд╕рдд, рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХрд▓рди рдХреЗ рддрдВрддреНрд░ (рдЕрдзрд┐рдХрд╛рдВрд╢рддрдГ рд╕рдХреНрд╖рдо рдФрд░ рд╕реНрдерд╛рди рдкрд░) рдХреЗ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред
рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рдЖрд╡реЗрджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬреЛ рд╕реАрдзреЗ рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣, рд╡реИрд╕реЗ, рджреЛ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рд░реНрд╡рд░ (рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░, рдЬрд┐рд╕ рдкрд░ рдЪреАрдВрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡рдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрд╡реЗрджрди рдХреЗ рджреЛрдиреЛрдВ рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рд╡рд░реНрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЙрд╕реА рд╕рдордп рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓реЛрдбрд┐рдВрдЧ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рд╕реЗ рдирд┐рдкрдЯреЗрдВред

рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдЬреЛ рдкрд╣рд▓реА рджрд┐рд╢рд╛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ, рд╡рд╣ рдереА рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛ред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд░реВрд╕реА (рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
  1. рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдХреЗ рд╡рдВрд╢рдЬ java.lang.ClassLoader рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Class loadClass(String name) рдкрджреНрдзрддрд┐ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд╡рд╛рд╣реА рджреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрдЧ рдХрд╛ protected Class defineClass(String name, byte[] b, int off, int len) , рдФрд░ рдЗрд╕реЗ protected Class defineClass(String name, byte[] b, int off, int len) рдкрджреНрдзрддрд┐ рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреЛ рдЗрд╕реЗ java.lang.Class рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдкрдиреЗ рд▓реЛрдбрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╣реАрдВ рд╕реЗ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  2. рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд▓реЛрдбрд░реЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рддрдВрддреНрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдБ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ OOP рдореЗрдВ рд╡рд░реНрдЧ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди ClassLoader рдХреНрд▓рд╛рд╕ рдХреЗ getParent рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрд▓рдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЗрд╡реАрдПрдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рд╢реАрд░реНрд╖ рддреАрди рдореБрдЦреНрдп рд▓реЛрдбрд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЖрдзрд╛рд░ (рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░, рдврд╛рдВрдЪреЗ рдХреЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░), рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓реЛрдбрд░ (рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░, рдЬреЛ рд▓рд┐рдм / рдПрдХреНрд╕ рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ) рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбрд░ (рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░, рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ) рдХрд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдПрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдмреВрдЯ рд▓реЛрдбрд░ рдФрд░ рдиреАрдЪреЗ рд╕реЗ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣реЙрдЯрд╕реНрдкреЙрдЯ JVM рдореЗрдВ, sun.misc.Launcher$AppClassLoader рд╡рд░реНрдЧ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ java.system.class.loader рдкреНрд░рдгрд╛рд▓реА рдХреА java.system.class.loader рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди java -Djava.system.class.loader=.. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред java -Djava.system.class.loader=.. ;
  3. рдбрд╛рдЙрдирд▓реЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдирд┐рдпрдо рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХрд┐рд╕реА рднреА рд▓реЛрдбрд░ рдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╡рд╣ рдЬрд┐рд╕ рд╡рд░реНрдЧ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдЙрд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдирд┐рдпрдо рдХреА рд╕реБрдВрджрд░рддрд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЧреИрд░-рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкреНрд░рдХреГрддрд┐ рд╕реЗ рдСрдлрд╕реЗрдЯ рд╣реИрдВред рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде, рд▓реЗрдЦрдХ рдХреЛ рдЕрднреА рддрдХ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╣рд▓реЗ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗ рдЪреБрдХреА рд╣реИ:
  1. рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬреЛ рд▓реЛрдбрдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдмрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦ рджреЗрдЧрд╛ рдФрд░ рдХреНрд▓рд╛рд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдЧрд╛ред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдирд┐рдпрдо рдХреЗ рдЕрдзреАрди, рдЗрд╕рд╕реЗ рд╕рднреА рд▓реЛрдб рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдЕрдиреНрдп рд▓реЛрдбрд░ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реЛрдВ;
  2. рдЗрд╕ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА JVM рдХреЛ рдмрд╛рдзреНрдп рдХрд░реЗрдВред

рджреВрд╕рд░реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

рддреЛ, рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЛрдбрд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ lib / ext рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ JAVA_TOOL_OPTIONS рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЙрдЧ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ ... рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрдИ рдЕрдиреНрдп рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдХреНрд╖рд╛рдУрдВ рд╕рд╣рд┐рдд рдПрдХ рджрд░реНрдЬрди рд╡рд░реНрдЧреЛрдВ рдХреА рдПрдХ JAVA_TOOL_OPTIONS рд╕реВрдЪреАред рдпрд╣ рддрдм рдерд╛ рдЬрдм рдореБрдЭреЗ рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдирд┐рдпрдо рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдпрд╛рдж рдХрд░рдирд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рдЪреАрдВрдЯреА рдФрд░ рдЯреЙрдордХреИрдЯ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣, рдПрдХ рддрд░рдл, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдХрд╛рд░рдг рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП, рдЗрди рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рд▓реЛрдбрд░ рд╣рдореЗрд╢рд╛ рджреВрд╕рд░реЗ рд╡рд░реНрдЧ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбрд░ рдЯреЙрдореНрдХреЗрдЯ рдФрд░ рдЪреАрдВрдЯреА рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬреЛ рдпрд╣ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рд╣реИред

рдирдВрдмрд░ рджреЛ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ


рдХрднреА-рдХрднреА, рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреНрдЮрд╛рди рдпрд╛ рдХреМрд╢рд▓ рдЕрдХреЗрд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА, рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдФрд░ рдереЛрдбрд╝рд╛ рднрд╛рдЧреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдм рд▓реЗрдЦрдХ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рд▓реЛрдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдЦреЛрдЬ рджрд┐рдЧреНрдЧрдЬ рдиреЗ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рддрдВрддреНрд░ рдкрд░ рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдЙрдкрдХрд░рдг рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдХреЛрдб рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡реЗ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдлреНрд░реЛрдлрд┐рд▓рд░ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдмрдВрдж рдХрд░реЛ, рдЙрдиреНрд╣реЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдпрд╣реА рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рддрдВрддреНрд░ рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдбреЗрдб рдХреНрд▓рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ? рд╣рд╛рдБ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рд╕реЗ рднреА рдмреЗрд╣рддрд░ рд╣реИ, byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) рд╡рд┐рдзрд┐ byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) ClassFileTransformer byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) рдХреЛ ClassFileTransformer рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ред рдпрд╣ рдкрджреНрдзрддрд┐ рдЕрдбрд╝рдЪрди рдмрди рдЧрдИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рднреА рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд░реНрдЧ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред
рдЕрдм рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
  1. рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдорд░ рд╡рд░реНрдЧ рдХреЛ рд▓рд┐рдЦреЗрдВ рдЬреЛ ClassFileTransformer.transform рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦ рджреЗрдЧрд╛ред
  2. рдФрд░ рдлрд┐рд░, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЬреЛ рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛ рд╣реИ рд╡рд╣ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
 package com.test; import java.io.File; import java.lang.instrument.Instrumentation; import java.lang.instrument.ClassFileTransformer; import java.security.ProtectionDomain; import java.lang.instrument.IllegalClassFormatException; public class LoggingClassFileTransformer implements ClassFileTransformer { public static void premain(String agentArguments, Instrumentation instrumentation) { instrumentation.addTransformer(new LoggingClassFileTransformer()); } /** *        * @param className        * @return  classfileBuffer  -  */ public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { log(className); return classfileBuffer; } //     lib/ext private static final File logFile = new File(System.getProperty("java.ext.dirs").split(File.pathSeparator)[0]+"/LoggingClassFileTransformer.log"); public static synchronized void log(String text) { //    // ... } } 

рдпрд╣рд╛рдВ рд╡рд░реНрдЧ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рддрдерд╛рдХрдерд┐рдд рдкреНрд░реАрдорд┐рдпрд░ рдХреНрд▓рд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред public static void premain(String paramString, Instrumentation paramInstrumentation) рдпреБрдХреНрдд рдПрдХ рд╡рд░реНрдЧред рдпрд╣ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХрд╣рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдк рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ addTransformer рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ addTransformer рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдЧ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреНрд▓рд╛рд╕ рдФрд░ рдкреНрд░реАрдорд┐рдпрд░ рдХреНрд▓рд╛рд╕ рджреЛрдиреЛрдВ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдПрдХ JAR рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдкрд░ (META-INF / MANIFEST.MF рдлрд╝рд╛рдЗрд▓) рдореЗрдВ Premain-Class рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реАрдорд┐рдпрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ Premain-Class: com.test.LoggingClassFileTransformer ред рдлрд┐рд░ рдЖрдкрдХреЛ JVM рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп -javaagent рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ JAVA_TOOL_OPTIONS рдЪрд░ рдлрд┐рд░ рд╕реЗ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред
рддреЛ, рд╡рд░реНрдЧ JAR, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ JAVA_TOOL_OPTIONS=-javaagent:" LoggingClassFileTransformer.jar" рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛, рд╕рдВрдХрд▓рд┐рдд, рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ JAVA_TOOL_OPTIONS=-javaagent:" LoggingClassFileTransformer.jar" рд╕реЗрдЯ рд╣реИ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЙрдЧ рд╕рдВрдХрд▓рд┐рдд рд╣реИ, PROFIT!
upd3ред
рд╣реЗрдмреНрд░реВрд╕рд░ рдЧреНрд░реЙрд╕реНрд╡рд╛рдЗрд╕ рдиреЗ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрднреА рддрдХ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ - рдПрд╕реНрдкреЗрдХреНрдЯрдЬ: "рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рд╕реНрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдХрд╛рдо рд╣реИред"

рдпреБрдкреАрдбреАред

рддреАрд╕рд░рд╛ рддрд░реАрдХрд╛ред рд╕реНрдХреНрд░реИрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓


рд╣реИрдмреНрд░реАрдЬрд░ рд╕реНрдкрд╛рдЗрдл рдФрд░ рдЕрдкрд╛рдВрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдпрд╛ рдЬреЛ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рд▓реЗрдХрд┐рди рдЕрд╡рд╛рдВрдЫрдиреАрдп рд░реВрдк рд╕реЗ рднреВрд▓ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖред
рдпрд╣ рд╡рд┐рдзрд┐ --XX:+TraceClassLoading -verbose:class рдпрд╛ --XX:+TraceClassLoading рд╕рд╛рде JVM рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, [Loaded java.util.Date from shared objects file] рдЬреИрд╕реЗ рд╕рдВрджреЗрд╢ рдорд╛рдирдХ JVM рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдбрд╛рд▓реЗ [Loaded java.util.Date from shared objects file] ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рдзрд┐, рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЛрд╖ рд╣реИ - рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдХреА рджрд┐рд╢рд╛ рднреАред рдФрд░ рдкреНрд░рд╢реНрди рдореЗрдВ рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╕рднреА рдЬреЗрд╡реАрдПрдо рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
upd2ред
рд╣рдмреНрд░рд╛рд╕рд░ рдЕрдкрд╛рдВрдЧрд┐рди рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЗрд╡реАрдПрдо рд▓реЙрдиреНрдЪ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛:
java -XX:+TraceClassLoading -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=java_*.log -XX:-DisplayVMOutput HelloWorld
* рдХреЗ рдмрдЬрд╛рдп, рдкреАрдЖрдИрдбреА тАЛтАЛрд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрджреЗрд╢ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, java_580.log, рдЗрд╕ рддрд░рд╣ рд╕реЗ:
 <?xml version='1.0' encoding='UTF-8'?> <hotspot_log version='160 1' process='580' time_ms='1334248301214'> <vm_version> <name> Java HotSpot(TM) Client VM </name> <release> 20.6-b01 </release> <info> Java HotSpot(TM) Client VM (20.6-b01) for windows-x86 JRE (1.6.0_31-b05), built on Feb 3 2012 18:44:09 by "java_re" with MS VC++ 7.1 (VS2003) </info> </vm_version> <vm_arguments> <args> -XX:+TraceClassLoading -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=java_*.log -XX:-DisplayVMOutput </args> <command> test </command> <launcher> SUN_STANDARD </launcher> <properties> java.vm.specification.name=Java Virtual Machine Specification java.vm.version=20.6-b01 java.vm.name=Java HotSpot(TM) Client VM java.vm.info=mixed mode, sharing java.ext.dirs=C:\Program Files\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext java.endorsed.dirs=C:\Program Files\Java\jre6\lib\endorsed sun.boot.library.path=C:\Program Files\Java\jre6\bin java.library.path=C:\WINDOWS\system32;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\PC Connectivity Solution\;C:\Program Files\Rockwell Software\RSCommon;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Java\jdk1.6.0_06\bin;c:\hibernate;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Nmap;;C:\PROGRA~1\COMMON~1\MUVEET~1\030625;C:\PROGRA~1\COMMON~1\MUVEET~1\030625;. java.home=C:\Program Files\Java\jre6 java.class.path=. sun.boot.class.path=C:\Program Files\Java\jre6\lib\resources.jar;C:\Program Files\Java\jre6\lib\rt.jar;C:\Program Files\Java\jre6\lib\sunrsasign.jar;C:\Program Files\Java\jre6\lib\jsse.jar;C:\Program Files\Java\jre6\lib\jce.jar;C:\Program Files\Java\jre6\lib\charsets.jar;C:\Program Files\Java\jre6\lib\modules\jdk.boot.jar;C:\Program Files\Java\jre6\classes java.vm.specification.vendor=Sun Microsystems Inc. java.vm.specification.version=1.0 java.vm.vendor=Sun Microsystems Inc. sun.java.command=test sun.java.launcher=SUN_STANDARD </properties> </vm_arguments> <tty> <writer thread='1504'/> [Loaded java.lang.Object from shared objects file] ... <writer thread='3092'/> <destroy_vm stamp='0.281'/> <tty_done stamp='0.283'/> </tty> <hotspot_log_done stamp='0.283'/> </hotspot_log> 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдкрд░ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж -XX:-DisplayVMOutput рд╡рд┐рдХрд▓реНрдкред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рд╣реИред рдпрд╣ рдПрдХ рддрдереНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╣рд╕ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА


рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрдХреНрд╖рд╛ рд▓реЛрдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ:

рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:

Source: https://habr.com/ru/post/In141699/


All Articles