Listowanie silników skryptowych (Java)
Java Scripting API (JSR-223) jest w JDK od dawna. Dawniej było częściej używane, gdyż częścią JDK był język Rhino, potem Nashorn z dodatkowym narzędziem linii poleceń jjs. Aktualnie JDK 19 nie posiada żadnego dedykowanego języka skryptowego, ale nadal może być używane z językami skryptowymi kompilowalnymi do kodu bajtowego JVM.
Jednym z takich języków, który jest jednocześnie językiem skryptowym jest język Apache Groovy.
Tutaj pracujemy w projekcie IntelliJ IDEA, z JDK 19, z dodaną biblioteką Groovy 4.0.6. Listujemy wszystkie silniki skryptowe obecne w JDK.
Projekt na razie wygląda tak:
module-info.java
module jsr223groovy { requires org.apache.groovy; requires java.scripting; requires java.sql; }
E01_EngineListing.java
package jsr223groovy; import java.util.List; import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; public class E01_EngineListing { public static void main(String[] args) { ScriptEngineManager sem = new ScriptEngineManager(); List<ScriptEngineFactory> lista = sem.getEngineFactories(); for (ScriptEngineFactory f : lista) { System.out.println("Nazwa silnika: " + f.getEngineName()); System.out.println("Wersja silnika: " + f.getEngineVersion()); System.out.println("Rozszerzenia plików: " + f.getExtensions()); System.out.println("Nazwa języka: " + f.getLanguageName()); System.out.println("Wersja języka: " + f.getLanguageVersion()); System.out.println("Nazwy skrócone: " + f.getNames()); System.out.println("Typy MIME: " + f.getMimeTypes()); System.out.println("----------------------------"); } } }
Po uruchomieniu klasy na konsoli zobaczymy
Nazwa silnika: Groovy Scripting Engine Wersja silnika: 2.0 Rozszerzenia plików: [groovy] Nazwa języka: Groovy Wersja języka: 4.0.6 Nazwy skrócone: [groovy, Groovy] Typy MIME: [application/x-groovy] ----------------------------