рдиреИрд╢реЙрд░реНрди рдХрд╛ рдкрд░рд┐рдЪрдп

рдкрд░рд┐рдЪрдп


рдЫрд╡рд┐ рдиреИрд╢реЙрд░реНрди * рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдУрд░реЗрдХрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджрд╛ рд╡рд┐рдВрдЪреА рдорд╢реАрди (JSR 292) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдФрд░ рдЬрд╛рд╡рд╛ 8 рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ (рдЬреЛ рдХрд┐ рдорд╛рд░реНрдЪ 2014 рдореЗрдВ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ)ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди (рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд░реНрдерди ) рдЬрд╛рд╡рд╛ 6 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд░рд╛рдЗрдиреЛ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

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


рдЖрд╡реЗрджрди


рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг

JDK 8 рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╣реБрдБрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╢реЗрд╖ рдкрд╛рда рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ 8 рдХреЗ рд▓рд┐рдП javac рдФрд░ java рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡!

 import javax.script.*; public class EvalScript { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a Nashorn script engine ScriptEngine engine = factory.getEngineByName("nashorn"); // evaluate JavaScript statement try { engine.eval("print('Hello, World!');"); } catch (final ScriptException se) { se.printStackTrace(); } } } 

рдХрдХреНрд╖рд╛ рдХрд╛ рд╕рдВрдХрд▓рди:
 ./javac EvalScript.java 

рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
 ./java EvalScript 

рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рджреЗрдЦрддреЗ рд╣реИрдВ:
 Hello, World! 

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ + рдЬрд╛рд╡рд╛

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

MyScript.js

 var MyClass = Java.type("EvalScript.MyClass"); var my = new MyClass(); my.printMsg("Hello!"); 

EvalScript.java

 import javax.script.*; import java.io.*; public class EvalScript { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a Nashorn script engine ScriptEngine engine = factory.getEngineByName("nashorn"); // evaluate JavaScript statement try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); engine.eval(br); } catch (final ScriptException se) { se.printStackTrace(); } } public static class MyClass { public void printMsg(String msg) { System.out.println("printMsg : "+msg); } } } 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛ рдмрдирд╛рдИ (рдЬреЛ рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рднреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рдФрд░ рдЗрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╕реЗ рдмреБрд▓рд╛рдпрд╛ред рдпрд╣ рд╡рд░реНрдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ js рдХреЛрдб рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ:
 ./java EvalScript < MyScript.js 

рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рджреЗрдЦрддреЗ рд╣реИрдВ:
 printMsg : Hello! 


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


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

рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА:





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

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


All Articles