25 Kasım 2019 Pazartesi

JSR223 ScriptEngineManager Sınıfı

Giriş
Şu satırı dahil ederiz. Bir ScriptEngine nesnesi yaratır.
import javax.script.ScriptEngineManager;
Açıklaması şöyle
The Java Scripting API (JSR 223) is a set of classes and interfaces stored in the relatively small and simple javax.script package. The  ScriptEngineManager class is the entry point to discover script engines through the JAR file service discovery mechanism, and to instantiate ScriptEngine objects that interpret scripts written in a specific scripting language.
constructor
Şöyle yaparız.
ScriptEngineManager mgr = new ScriptEngineManager();
getEngineByName metodu
ScriptEngine nesnesi oluşturur.

Örnek - js
Şöyle yaparız.
ScriptEngine engine = mgr.getEngineByName("js");
Örnek - javascript
Şöyle yaparız.
ScriptEngine engine = mgr.getEngineByName("JavaScript");
Örnek - nashorn
Açıklaması şöyle. Java 11 ile deprecate edildi. 
Removal of Nashorn JavaScript Engine: Nashorn, which is a JavaScript engine that was included in previous versions of Java, has been removed in Java 20. This engine was deprecated since Java 11, so this shouldn’t come as a surprise to anyone.
Nashorn JDK 15 ile gelmiyor artık. Şöyle yaparız.
NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager()
  .getEngineByName("nashorn");
Örnek - groovy
Elimizde şöyle bir groovy kodu olsun.
class MyScript {

  void sayHello() {
    println "Hello world"
  }
}

new MyScript()
Şöyle yaparız.
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("groovy");

Object object = engine.eval(new FileReader("MyScript.groovy"));
Method method = object.getClass().getDeclaredMethod("sayHello");
method.invoke(object);





Hiç yorum yok:

Yorum Gönder