JavaFX z Arią - powrót do strony głównej

Ewaluacja skryptu ze stringu (JSR-223, Groovy Script)

Aby ewaluować skrypt używamy metody Object eval(String script) klasy SriptEngine.
Nasz projekt wygląda tak:
Układ aplikacji

Klasa E02_EvalScriptFromString1.java
package jsr223groovy;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class E02_EvalScriptFromString1 {
	public static void main(String[] args) {

		ScriptEngineManager sem = new ScriptEngineManager();
		ScriptEngine se = sem.getEngineByName("Groovy");
		String script = "println('Cześć! Jestem Groovy! Uczę się polskiego: ąćęłńóśźż')";		
		try {
			se.eval(script);			
		} 
		catch (ScriptException e) {
			e.printStackTrace();
		}
	}
}

Ewaluujemy skrypt mieszczący się w jednym wierszu. Zwróćmy uwagę, że został użyty ś
średnik, któryPo uruchomieniu klasy na konsoli zobaczymy:

Cześć! Jestem Groovy! Uczę się polskiego: ąćęłńóśźż
Klasa E02_EvalScriptFromString2.java
package jsr223groovy;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class E02_EvalScriptFromString2 {
	public static void main(String[] args) {

		ScriptEngineManager sem = new ScriptEngineManager();
		ScriptEngine se = sem.getEngineByName("Groovy");		
		String script ="int power(int n) { 2**n }; println \"2^6==${power(6)}\"";
		try {
			se.eval(script);			
		} 
		catch (ScriptException e) {
			e.printStackTrace();
		}
	}
}

Ewaluujemy skrypt, który mieści się jednej linii, ale zawiera więcej niż jedno polecenie. Zwróćmy uwagę, że musieliśmy użyć średnika, który w Groovy jest uważany za element nadmiarowy. Po uruchomieniu zobaczymy na konsoli:

2^6==64
Klasa module-info.java
module jsr223groovy {

    requires org.apache.groovy;

    requires java.scripting;
    requires java.sql;
}