JVM рддреБрдореНрд╣реА рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдХреЛрдб рдереЗрдЯ рдЪрд╛рд▓рд╡реВ рд╢рдХрдд рдирд╛рд╣реА. рдмрд╛рдпрдХреЛрдбрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдХрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рддреНрдпрд╛рд▓рд╛рдЪ рдорд╛рд╣реАрдд рдЖрд╣реЗ. рдмрд╛рдЗрдЯрдХреЛрдб рд╣реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдЖрд╣реЗ рдЬреА рдорд╢реАрди рдХреЛрдбрдЪреНрдпрд╛ рдЬрд╡рд│ рдЖрд╣реЗ.

Java рд╕рд╛рдареА, рд╕рдВрдХрд▓рди рдореНрд╣рдгрдЬреЗ рдЬрд╛рд╡рд╛рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ (рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп) рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рддреНрдпрд╛рдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдмрд╛рдИрдЯреЗрдХреЛрдбрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рднрд╛рд╖рд╛рдВрддрд░ рдЖрд╣реЗ.

рддреБрдордЪрд╛ рдХреЛрдб .java рдлрд╛рдИрд▓рдордзреНрдпреЗ рдХрдВрдкрд╛рдЗрд▓рд░рдХрдбреЗ рдкрд╛рдард╡рд▓рд╛ рдЬрд╛рддреЛ. рдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ рдХреЛрдбрдордзреНрдпреЗ рдХреЛрдгрддреАрд╣реА рддреНрд░реБрдЯреА рдЖрдврд│рд▓реА рдирд╛рд╣реА, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдирд╡реАрди рдмрд╛рдпрдЯреЗрдХреЛрдб рдлрд╛рдЗрд▓ рдкрд░рдд рдорд┐рд│реЗрд▓. рдпрд╛ рдлрд╛рдИрд▓рдЪреЗ рдирд╛рд╡ рд╕рдорд╛рди рдЕрд╕реЗрд▓ рдкрд░рдВрддреБ рд╡реЗрдЧрд│рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрд╕реЗрд▓: .class . рдХреЛрдбрдордзреНрдпреЗ рддреНрд░реБрдЯреА рдЕрд╕рд▓реНрдпрд╛рд╕, рдХрдВрдкрд╛рдЗрд▓рд░ рддреБрдореНрд╣рд╛рд▓рд╛ "рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдирд╛рд╣реА" рдЕрд╕реЗ рд╕рд╛рдВрдЧреЗрд▓. рдордЧ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреНрд░реБрдЯреА рджреВрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рддреБрдореНрд╣реА рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА javac рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рддрд╛, рдЬреЛ JDK (рдЬрд╛рд╡рд╛ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ) рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдЬрд░ рддреБрдореНрд╣реА рдлрдХреНрдд JRE (Java Runtime Environment) рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ рддрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╕реЗрд▓! рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдлрдХреНрдд JVM рдЕрд╕реЗрд▓, рдЬреЗ рдлрдХреНрдд bytecode рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЗ. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА JDK рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЛ рдЖрдгрд┐ рдЖрдордЪреА .java рдлрд╛рдИрд▓ рдХрдВрдкрд╛рдпрд▓рд░рдХрдбреЗ рдкрд╛рдард╡рддреЛ.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд╛рд╣реА рдХрдиреНрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯрд╕рд╣ рдПрдХ рд╕рд╛рдзрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдШреЗрдК:

class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

рд╣рд╛ рдХреЛрдб D:/temp/MySolution.java рдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░реВ .

рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░реВ

D:\temp>javac MySolution.java

рдХреЛрдбрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рддреНрд░реБрдЯреА рдирд╕рд▓реНрдпрд╛рд╕, рдЯреЗрдореНрдк рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ MySolution.class рдлрд╛рдЗрд▓ рджрд┐рд╕реВрди рдпреЗрдИрд▓ . рдЗрддрдХреЗрдЪ рдХрд╛рдп, рддреБрдордЪрд╛ рдХреЛрдб рдЕрд╕рд▓реЗрд▓реА MySolution.java рдлрд╛рдЗрд▓ рдХреБрдареЗрд╣реА рдЬрд╛рдд рдирд╛рд╣реА. рддреЛ рдЬрд┐рдереЗ рд╣реЛрддрд╛ рддрд┐рдереЗрдЪ рд░рд╛рд╣рддреЛ. рдкрдг рдЖрддрд╛ MySolution.class рдордзреНрдпреЗ bytecode рдЖрд╣реЗ рдЖрдгрд┐ JVM рджреНрд╡рд╛рд░реЗ рдереЗрдЯ рдЪрд╛рд▓рд╡рд╛рдпрд▓рд╛ рддрдпрд╛рд░ рдЖрд╣реЗ.

рдЖрдордЪреЗ рдЙрджрд╛рд╣рд░рдг рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╛рдд рдореЛрдареЗ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд▓реНрдк рджреЗрдЦреАрд▓ javac рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рддрд╛рдд. рддреНрдпрд╛рдореБрд│реЗ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рддреБрдореНрд╣реА рдПрдХрд╛ рд╡реЗрд│реА рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡рд░реНрдЧ рд╕рдВрдХрд▓рд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдордЬрд╛ рдЯреЗрдореНрдк рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ Cat.java рд╣реА рджреБрд╕рд░реА рдлрд╛рдИрд▓ рдЖрд╣реЗ :

D:\temp>javac MySolution.java Cat.java

рдХрд┐рдВрд╡рд╛ рд╣реЗ:

D:\temp>javac *.java

рдПрдХрджрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, .class рдлрд╛рдЗрд▓реНрд╕ рдЬрд╛рд░ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкреЕрдХреЗрдЬ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд , рдЬреНрдпрд╛ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рдВрд╡рд░ рд╣рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рд╡рд░ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдЬрд╛рд░ рдлрд╛рдЗрд▓ рдХрд╢реА рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреА рдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдпреЗрдереЗ рдЖрд╣реЗ :

D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class

рдХреБрдареЗ:

  • jar рд╣реА JDK рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ .jar рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рдЖрд╣реЗ

  • cvfe рдЦрд╛рд▓реАрд▓ рдЕрд░реНрдерд╛рдВрд╕рд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд:

    • c - рдирд╡реАрди рдЬрд╛рд░ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛

    • v - рд╡рд░реНрдмреЛрд╕ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рд╛

    • f - рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреВрд▓рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдареЗрд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ ( myjar.jar )

    • e тАУ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ ( MySolution ) рджрд░реНрд╢рд╡рд┐рддреЗ, рдореНрд╣рдгрдЬреЗ рдореБрдЦреНрдп рдкрджреНрдзрдд рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓рд╛ рд╡рд░реНрдЧ

  • MySolution.java Cat.class тАУ рдлрд╛рдЗрд▓реНрд╕рдЪреА рдЬрд╛рдЧрд╛-рд╡рд┐рднрдХреНрдд рдирд╛рд╡реЗ рдЬреА рдЬрд╛рд░ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкреЕрдХ рдХреЗрд▓реА рдЬрд╛рддреАрд▓.

рдЖрдореНрд╣реА рдкрд░рд┐рдгрд╛рдореА рдЬрд╛рд░ рдлрд╛рдЗрд▓ рдХрд╢реА рдЪрд╛рд▓рд╡рддреЛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:

D:\temp>java -jar myjar.jar
рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА:
javac рдЖрдгрд┐ jar рдЯреВрд▓реНрд╕рдордзреНрдпреЗ рдЕрдВрдЧрднреВрдд рдорджрдд рдЖрд╣реЗ . рддреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░ рдЦрд╛рд▓реАрд▓ рдЪрд╛рд▓рд╡рд╛:
  • javac --рдорджрдд
  • рдЬрд╛рд░ --рдорджрдд