рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ 11 рдореЗрдВ рдПрдХрд▓-рдлрд╝рд╛рдЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдирд╛



рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ HelloUniverse.java рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ main рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреА рд╣реИ:

 public class HelloUniverse{ public static void main(String[] args) { System.out.println("Hello InfoQ Universe"); } } 

рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЬрд╛рд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЬреЗрд╡реИрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ HelloUniverse.class рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ:

 mohamed_taman$ javac HelloUniverse.java 

рддрдм рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрдорд╛рдВрдб (рджреБрднрд╛рд╖рд┐рдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 mohamed_taman$ java HelloUniverse Hello InfoQ Universe 

рдлрд┐рд░ рд╡рд░реНрдЪреБрдЕрд▓рдХрд╛ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдЬреЛ рдХрдХреНрд╖рд╛ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред

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

рдЬрд╛рд╡рд╛ рдПрд╕рдИ 11 рдореЗрдВ, рдЖрдк рд╕реАрдзреЗ рдордзреНрдпрд╡рд░реНрддреА рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рдПрдХрд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Jshell рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд, рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрддреА рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

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

рдЬрд╛рд╡рд╛ 11 рдХреА рдпрд╣ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдХрд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдЗрдП рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП


рд▓реЗрдЦ рдореЗрдВ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 11 рд╕реЗ рдХрдо рдирд╣реАрдВ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рдЬрд╛рд╡рд╛ рдПрд╕рдИ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдЯ 12.0.1 рдерд╛ - рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рд╣реИ , рдмрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╢рд░реНрддреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдирд╡реАрдирддрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк JDK 13 рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм рд╡рд┐рднрд┐рдиреНрди OpenJDK рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреА рд░рд┐рд▓реАрдЬрд╝ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдореЗрдВ AdoptOpenJDK рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЖрдИрдбреАрдИ рдХреЗ рд╕рднреА рдЬрд╛рджреВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдЖрдИрдбреАрдИ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рджреЗ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕реАрдзреЗ рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде .java рдЪрд▓рд╛рдПрдБ


JDK 11. рдореЗрдВ JEP 330 рдлрд╝рдВрдХреНрд╢рди (рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХрд▓-рдлрд╝рд╛рдЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ .class рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдП рдмрд┐рдирд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рд╣реИред рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╡реЗ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИрдВ рдпрд╛ рдирд┐рдЬреА рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЛ рдореБрдЦреНрдп рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдЗрд╕рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рддреН, рдЖрджреЗрд╢ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг


рдЖрдЗрдП рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рд░рд▓рддрдо рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рд╣реИрд▓реЛ рдпреВрдирд┐рд╡рд░реНрд╕!

рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдЗрд╕реЗ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ HelloUniverse.java рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдЕрдм рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВ:

 mohamed_taman$ rm HelloUniverse.class 

рдпрджрд┐ рдЕрдм рдЬрд╛рд╡рд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЖрдк рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ:

 mohamed_taman$ java HelloUniverse.java Hello InfoQ Universe 

рдЖрдкрдХреЛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛: рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк java HelloUniverse.java рдЕрдорд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╣реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ: рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣реА рд╣реИ, рд╕рдВрдХрд▓рди рдЕрднреА рднреА рд╣реБрдб рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЙрд╕рдХреА рдЧрд▓рддреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд╕рдВрдХрд▓рди рдореЗрдореЛрд░реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреИрд╕реЗ рдЬрд╛рд╡рд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ HelloUniverse рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ


JDK 10 рдореЗрдВ, рдЬрд╛рд╡рд╛ рд▓рд╛рдВрдЪрд░ рддреАрди рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

  1. рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред
  2. рдПрдХ JAR рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред
  3. рдореЙрдбреНрдпреВрд▓ рдХреЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред

рдФрд░ рдЬрд╛рд╡рд╛ 11 рдореЗрдВ, рдПрдХ рдЪреМрдерд╛ рдореЛрдб рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛:

  1. рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред

рдЗрд╕ рдореЛрдб рдореЗрдВ, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╣рд▓реА рдХрдХреНрд╖рд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рджреЛ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдЗрд░рд╛рджрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  1. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкрд╣рд▓рд╛ рдЖрдЗрдЯрдо рди рддреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ рди рд╣реА рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
  2. рд▓рд╛рдЗрди рдореЗрдВ - --source <vrsion> рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╛рд╡рд╛ рдкрд╣рд▓реЗ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдХрд┐ рдХрдорд╛рдВрдб рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдпрд╛ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдпрд╣ .java рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╛рди рд▓реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рдХреЗ рд╡рд┐рдХрд▓реНрдк рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдкрде рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрдЧ рдкрде рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкрд╣рд▓рд╛ рддрддреНрд╡, рдЬреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ --source рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --source рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдПрдХ "рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

--source рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, --source рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд --source рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ рдореИрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?


рдЖрдЗрдП рд╣рдорд╛рд░реЗ рд╣реИрд▓реЛ рдпреВрдирд┐рд╡рд░реНрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдирд┐рдЬреА рдЧреНрд░реАрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗ рдЬреЛ InfoQ Universe рдкрд░ рдЬрд╛рддрд╛ рд╣реИ:

 public class HelloUniverse2{ public static void main(String[] args){ if ( args == null || args.length< 1 ){ System.err.println("Name required"); System.exit(1); } var name = args[0]; System.out.printf("Hello, %s to InfoQ Universe!! %n", name); } } 

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд╕рд╣реЗрдЬреЗрдВ Greater.javaред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред

рдХреЛрдб рдЪрд▓рд╛рдПрдБ:

 mohamed_taman$ java Greater.java "Mo. Taman" Hello, Mo. Taman to InfoQ universe!! 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдпрд╣ рднреА рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреЛ рддрд░реНрдХ рджрд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдмрд╛рдж рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рднреА рддрд░реНрдХ рдорд╛рдирдХ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

- рд╕реНрд░реЛрдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ


- --source рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ:

  1. рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ред
  2. рдЬрд╛рд╡рд╛ рдЬрд╛рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рд╕реЛрд░реНрд╕ рдореЛрдб рдореЗрдВред

рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдЖрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП JDK рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, .java рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдлреНрд▓рд╛рдИ рдкрд░ рд╕рдВрдХрд▓рди рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдкрд╣рд▓реЗ рджреВрд╕рд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рджреЗрдЦреЗрдВред рдХреЗрд╡рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЧреНрд░реЗрдЯрд░ рдЬрд╛рдЬрд╡рд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 mohamed_taman$ java greater "Mo. Taman" Error: Could not find or load main class greater Caused by: java.lang.ClassNotFoundException: greater 

рдпрджрд┐ рдХреЛрдИ .java рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╛рдо рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╡рд░реНрдЧ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЬрд╛рд╡рд╛ рд▓реЙрдиреНрдЪрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд╣рд▓рд╛ рдореЛрдб рд╣реИред рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --source рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 mohamed_taman$ java --source 11 greater "Mo. Taman" Hello, Mo. Taman to InfoQ universe!! 

рдЕрдм рдкрд╣рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред Greater.java рд╡рд░реНрдЧ JDK 10 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ var рдХреАрд╡рд░реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди JDK 9 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред source рдХреЛ 10 рдмрджрд▓реЗрдВ:

 mohamed_taman$ java --source 10 Greater.java "Mo. Taman" Hello Mo. Taman to InfoQ universe!! 

рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдкрд╛рд╕ --source 9 рдмрдЬрд╛рдп --source 9 :

 mohamed_taman$ java --source 9 Greater.java "Mo. Taman" Greater.java:8: warning: as of release 10, 'var' is a restricted local variable type and cannot be used for type declarations or as the element type of an array var name = args[0]; ^ Greater.java:8: error: cannot find symbol var name = args[0]; ^ symbol: class var location: class HelloWorld 1 error 1 warning error: compilation failed 

рдиреЛрдЯ: рд╕рдВрдХрд▓рдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ var JDK 10 рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рдмрди рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрддрд░ 10 рднрд╛рд╖рд╛ рд╣реИ, рд╕рдВрдХрд▓рди рдЬрд╛рд░реА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреНрд░реИрд╢ рддрдм рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо var ред

рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЕрдм рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рд╣рд╛рдБ рдпрд╣ рдХрд░рддрд╛ рд╣реИред

рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдХреЛрдб рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ ред

рдпрд╣рд╛рдБ PalindromeChecker.java рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдХреЛрдб рд╣реИ:

 import static java.lang.System.*; public class PalindromeChecker { public static void main(String[] args) { if ( args == null || args.length< 1 ){ err.println("String is required!!"); exit(1); } out.printf("The string {%s} is a Palindrome!! %b %n", args[0], StringUtils .isPalindrome(args[0])); } } public class StringUtils { public static Boolean isPalindrome(String word) { return (new StringBuilder(word)) .reverse() .toString() .equalsIgnoreCase(word); } } 

рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБ:

 mohamed_taman:code$ java PalindromeChecker.java RediVidEr The string {RediVidEr} is a Palindrome!! True 

"рдореИрдбрдо" рдХреЗ рдмрдЬрд╛рдп "рд░реЗрд╕рдХрд╛рд░" рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ:

 mohamed_taman:code$ java PalindromeChecker.java RaceCar The string {RaceCar} is a Palindrome!! True 

рдЕрдм "рд░реЗрд╕рдХрд╛рд░" рдХреЗ рдмрдЬрд╛рдп "рдореЛрд╣рдореНрдордж" рдХреЛ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░реЗрдВ:

 mohamed_taman:code$ java PalindromeChecker.java Taman The string {Taman} is a Palindrome!! false 

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

рдХреНрдпрд╛ рдореИрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?


рд╣рд╛рдВ, рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВред рдореЗрдореЛрд░реА-рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб --add-modules=ALL-DEFAULT рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдирд╛рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ JDK рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд┐рдП рдЧрдП рд╕рднреА рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрд╣реА рд╣реИ, рдХреЛрдб рдореЙрдбреНрдпреВрд▓-info.java рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдЬреЗрдбрдбреАрдХреЗ 11 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдирдП HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ HTTP рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреЗ рдПрдкреАрдЖрдИ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд╡рд╛ рдПрд╕рдИ 9 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЕрдм рдЙрдирдХреЗ рдкрд╛рд╕ java.net.http рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреВрд░реНрдг-рд╡рд┐рдХрд╕рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред ред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GET рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг REST API рдХрд╣реЗрдВрдЧреЗред рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛ reqres.in/api/users?page=2 рдХреА рдУрд░ рд░реБрдЦ рдХрд░рддреЗ рд╣реИрдВ ред рд╣рдо UsersHttpClient.java рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ:

 import static java.lang.System.*; import java.net.http.*; import java.net.http.HttpResponse.BodyHandlers; import java.net.*; import java.io.IOException; public class UsersHttpClient{ public static void main(String[] args) throws Exception{ var client = HttpClient.newBuilder().build(); var request = HttpRequest.newBuilder() .GET() .uri(URI.create("https://reqres.in/api/users?page=2")) .build(); var response = client.send(request, BodyHandlers.ofString()); out.printf("Response code is: %d %n",response.statusCode()); out.printf("The response body is:%n %s %n", response.body()); } } 

рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 mohamed_taman:code$ java UsersHttpClient.java Response code is: 200 The response body is: {"page":2,"per_page":3,"total":12,"total_pages":4,"data":[{"id":4,"first_name":"Eve","last_name":"Holt","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"},{"id":5,"first_name":"Charles","last_name":"Morris","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg"},{"id":6,"first_name":"Tracey","last_name":"Ramos","avatar":"https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg"}]} 

рдЕрдм рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИрдВ?


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рд╣реИрдВ:

рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдмрджрд▓реЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ, рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╕рд░рд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб (рдпрд╛ рдХрдорд╛рдВрдб) рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

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

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд░рдЪрд┐рдд рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛, рд╕реА, рдФрд░ рд╕реА ++ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкрд░реНрд▓, рдкреАрдПрдЪрдкреА рдФрд░ рдкрд╛рдпрдерди рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб , рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд▓рдВрдмреЗ рд╕рдордп рддрдХ, рдЬрд╛рд╡рд╛ рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд, рдЙрдЪреНрдЪ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕реАрдЦрдирд╛ рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдлрд┐рд░ рднреА, рдЬрд╛рд╡рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 24 рд╕рд╛рд▓ рдХрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрдирд┐рдпрд╛ рднрд░ рдХреЗ рд▓рдЧрднрдЧ 10 рдорд┐рд▓рд┐рдпрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рдиреЗ рдпреБрд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрдХрд▓рди рдФрд░ рдЖрдИрдбреАрдИ рдХреЗ рдмрд┐рдирд╛ рднрд╛рд╖рд╛ рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝реА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Java SE 9 рдиреЗ JShell рдЯреВрд▓ (REPL) рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬреЛ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдФрд░ JDK 11 рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдорд┐рд▓реА, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдЖрдк java рдХрдорд╛рдВрдб рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдЬрд╛рд╡рд╛ 11 рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ:

  1. java рдХрдорд╛рдВрдб рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЙрд▓ рдХрд░реЗрдВред
  2. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП * рдирд┐рдХреНрд╕ рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ, рдмреИрд╢ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдиред

рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдм рд╣рдо рджреВрд╕рд░реЗ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред

рд╢реЗрдмрдВрдЧ рдлрд╛рдЗрд▓реЗрдВ: рдЬрд╛рд╡рд╛ рдХреЛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВ


рддреЛ, рдЬрд╛рд╡рд╛ рдПрд╕рдИ 11 рдореЗрдВ, рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ * рдирд┐рдХреНрд╕ рджреБрдирд┐рдпрд╛ рд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╢реЗрдмрдВрдЧ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рднрд╛рд╖рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред

рд╢реЗрдмрдВрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдкрд╣рд▓реЗ рджреЛ рдмрд╛рдЗрдЯреНрд╕ 0x23 рдФрд░ 0x21 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ ASCII рд╡рд░реНрдг рдПрдиреНрдХреЛрдбрд┐рдВрдЧ # рд╣реИ! .. рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдмрд╛рдж рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рдирд┐рд░реНрдорд┐рдд рд╢реЗрдмрдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ # рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ! рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЬрд╛рд╡рд╛ рд▓рд╛рдВрдЪрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ HelloUniverse.java рдХреЗ рд╕рд╛рде рд╣реИред

MacOS Mojave 10.14.5 рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдПрдБред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рд╢реЗрд▓рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ:

  • рдЕрдкрдиреЗ OS рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рди рдорд┐рд▓рд╛рдПрдВред
  • рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ --source рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ --source рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: --class-path , --module-path , --add-exports , --add-modules , --limit-modules , --patch-module , - --upgrade-module-path , рдЖрджрд┐ред рд╕рд╛рде рд╣реА рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рд░реВрдкрд╛рдВрддрд░ред рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ JEP 12 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк --enable-preview ред
  • рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╛рд╡рд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  • рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд╢реЗрдмрдВрдЧ рдкрд╛рддреНрд░реЛрдВ (#!) рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
    #!/path/to/java --source <vrsion>
  • рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди (рдЕрдВрдд рдореЗрдВ .jpg) рдХреЗ рдЕрдиреБрд░реВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд▓рдмреИрдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
  • рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
    chmod +x <Filname>.<Extnsion> ред

рдЖрдЗрдП рдПрдХ рд╢реЗрдмрдВрдЧ-рдлрд╛рдЗрд▓ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдмрдирд╛рдПрдВ, рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реА рдЬрд╛рдПрдЧреАред

 #!/usr/bin/java --source 11 import java.nio.file.*; import static java.lang.System.*; public class DirectoryLister { public static void main(String[] args) throws Exception { vardirName = "."; if ( args == null || args.length< 1 ){ err.println("Will list the current directory"); } else { dirName = args[0]; } Files .walk(Paths.get(dirName)) .forEach(out::println); } } 

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рдлрд╛рдЗрд▓ рдХреЛ рдХреЛрдб рдХреЛ mohamed_taman:code$ chmod +x dirlist рдХреЛ рд╕рд╣реЗрдЬреЗрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ: mohamed_taman:code$ chmod +x dirlist ред

рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБ:

 mohamed_taman:code$ ./dirlist Will list the current directory . ./PalindromeChecker.java ./greater ./UsersHttpClient.java ./HelloWorld.java ./Greater.java ./dirlist 

рдкреИрд░реЗрдВрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд░рди рдХрд░реЗрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

 mohamed_taman:code$ ./dirlist ../ 

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

 $ java -Dtrace=true --source 11 dirlist 

рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ ./dirlist 

рдФрд░ рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрде рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ dirlist 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред

рдЯрд┐рдкреНрд╕


  1. рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдЖрдк javac рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рд╡реЗ java рдЙрддреНрддреАрд░реНрдг (рдпрд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -Werror рдпрд╛ -Werror рд╡рд┐рдХрд▓реНрдкред
  2. рдпрджрд┐ рдХреНрд▓рд╛рд╕рдкрде рдореЗрдВ .class рдФрд░ .java рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рддреЛ рд▓реЙрдиреНрдЪрд░ рдЖрдкрдХреЛ рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдЧрд╛ред

     mohamed_taman:code$ javac HelloUniverse.java mohamed_taman:code$ java HelloUniverse.java error: class found on application class path: HelloUniverse 

  3. рд╡рд░реНрдЧ рдФрд░ рдкреИрдХреЗрдЬ рдирд╛рдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЕрд╡рдЧрдд рд░рд╣реЗрдВред рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

     mohamed_taman:code$ tree . тФЬтФАтФА Greater.java тФЬтФАтФА HelloUniverse тФВ тФЬтФАтФА java.class тФВ тФФтФАтФА java.java тФЬтФАтФА HelloUniverse.java тФЬтФАтФА PalindromeChecker.java тФЬтФАтФА UsersHttpClient.java тФЬтФАтФА dirlist тФФтФАтФА greater 

    рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ HelloUniverse рдкреИрдХреЗрдЬ рдореЗрдВ рджреЛ java.java рдФрд░ java.java рдХреЛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдЖрдк рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

     mohamed_taman:code$ java HelloUniverse.java 

    рдлрд┐рд░ рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдХреМрди рд╕реА рджреВрд╕рд░реА? рд▓рд╛рдВрдЪрд░ рдЕрдм HelloUniverse рдкреИрдХреЗрдЬ рдореЗрдВ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдореВрд▓ HelloUniverse.java рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛, рдЕрд░реНрдерд╛рдд рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреАред

рдЬрд╛рд╡рд╛ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдмрдВрдЧ-рдлрд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦреЛрд▓рддреА рд╣реИрдВред

рд╕рд╛рд░рд╛рдВрд╢


рдЬрд╛рд╡рд╛ рдПрд╕рдИ 11 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░, рдЖрдк рд╕реАрдзреЗ рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ * рдирд┐рдХреНрд╕-рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред

рдЙрдкрдпреЛрдЧреА рд╕реВрддреНрд░


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


All Articles