Solución:
Aquí hay una secuencia de comandos para determinar todos los idiomas en su sistema:
import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
public class Test {
public static void main(String[] args)
{
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> factories = mgr.getEngineFactories();
for (ScriptEngineFactory factory : factories)
{
System.out.println("ScriptEngineFactory Info");
String engName = factory.getEngineName();
String engVersion = factory.getEngineVersion();
String langName = factory.getLanguageName();
String langVersion = factory.getLanguageVersion();
System.out.printf("tScript Engine: %s (%s)n", engName, engVersion);
List<String> engNames = factory.getNames();
for (String name : engNames)
{
System.out.printf("tEngine Alias: %sn", name);
}
System.out.printf("tLanguage: %s (%s)n", langName, langVersion);
}
}
}
Espero que esto ayude.
.. Sé con certeza que JavaScript es compatible, ..
ECMAscript, técnicamente.
.. pero no pude encontrar ningún otro idioma para trabajar con él. ¿Está implementado, por ejemplo, Ruby?
No. El motor ECMAscript es el único incluido por defecto, la última vez que escuché.
Actualizar
Los comentarios de Pointy a continuación sugieren que el motor Nashorn ha quedado obsoleto y se eliminará “pronto”.
No en ScriptEngine, pero aún puede usar BSF. Desde Apache Commons Bean Scripting Framework, puede encontrar su documentación aquí. –
BSF 2.x admite varios lenguajes de secuencias de comandos actualmente:
- Javascript (usando Rhino ECMAScript, del proyecto Mozilla)
- NetRexx (una extensión del lenguaje de scripting IBM REXX en Java)
- Commons JEXL
- Python (usando Jython)
- Tcl (usando Jacl)
- Hojas de estilo XSLT (como componente de Xalan y Xerces del proyecto Apache XML)
Además, los siguientes idiomas son compatibles con sus propios motores BSF:
- Java (usando BeanShell, del proyecto BeanShell)
- Groovy
- Mono maravilloso
- JLog (PROLOG implementado en Java)
- JRuby
- JudoScript
- ObjectScript
- ooRexx (Open Object Rexx), usando BSF4ooRexx.